(globalThis["__googlesitekit_webpackJsonp"] = globalThis["__googlesitekit_webpackJsonp"] || []).push([["googlesitekit-modules-analytics-4"],{

/***/ "./js/api-fetch-shim.js":
/*!******************************!*\
  !*** ./js/api-fetch-shim.js ***!
  \******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _wordpress_api_fetch_non_shim__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/api-fetch__non-shim */ "../node_modules/@wordpress/api-fetch/build/index.js");
/* harmony import */ var _wordpress_api_fetch_non_shim__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_api_fetch_non_shim__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _googlesitekit_api_middleware_preloading_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./googlesitekit/api/middleware/preloading.js */ "./js/googlesitekit/api/middleware/preloading.js");
/* harmony import */ var _js_googlesitekit_api_middleware_deduplication__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/api/middleware/deduplication */ "./js/googlesitekit/api/middleware/deduplication.ts");
/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _wordpress_api_fetch_non_shim__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== "default") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _wordpress_api_fetch_non_shim__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]
/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
/**
 * API Fetch Shim.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


const {
  nonce,
  nonceEndpoint,
  preloadedData,
  rootURL
} = __webpack_require__.g._googlesitekitAPIFetchData || {};
(_wordpress_api_fetch_non_shim__WEBPACK_IMPORTED_MODULE_0___default().nonceEndpoint) = nonceEndpoint;
(_wordpress_api_fetch_non_shim__WEBPACK_IMPORTED_MODULE_0___default().nonceMiddleware) = _wordpress_api_fetch_non_shim__WEBPACK_IMPORTED_MODULE_0___default().createNonceMiddleware(nonce);
(_wordpress_api_fetch_non_shim__WEBPACK_IMPORTED_MODULE_0___default().rootURLMiddleware) = _wordpress_api_fetch_non_shim__WEBPACK_IMPORTED_MODULE_0___default().createRootURLMiddleware(rootURL);
(_wordpress_api_fetch_non_shim__WEBPACK_IMPORTED_MODULE_0___default().dedupeMiddleware) = (0,_js_googlesitekit_api_middleware_deduplication__WEBPACK_IMPORTED_MODULE_2__["default"])({
  onDuplicate: _js_googlesitekit_api_middleware_deduplication__WEBPACK_IMPORTED_MODULE_2__.logDuplicate
});
(_wordpress_api_fetch_non_shim__WEBPACK_IMPORTED_MODULE_0___default().preloadingMiddleware) = (0,_googlesitekit_api_middleware_preloading_js__WEBPACK_IMPORTED_MODULE_1__["default"])(preloadedData);
_wordpress_api_fetch_non_shim__WEBPACK_IMPORTED_MODULE_0___default().use((_wordpress_api_fetch_non_shim__WEBPACK_IMPORTED_MODULE_0___default().nonceMiddleware));
_wordpress_api_fetch_non_shim__WEBPACK_IMPORTED_MODULE_0___default().use((_wordpress_api_fetch_non_shim__WEBPACK_IMPORTED_MODULE_0___default().mediaUploadMiddleware));
_wordpress_api_fetch_non_shim__WEBPACK_IMPORTED_MODULE_0___default().use((_wordpress_api_fetch_non_shim__WEBPACK_IMPORTED_MODULE_0___default().rootURLMiddleware));
_wordpress_api_fetch_non_shim__WEBPACK_IMPORTED_MODULE_0___default().use((_wordpress_api_fetch_non_shim__WEBPACK_IMPORTED_MODULE_0___default().dedupeMiddleware));
_wordpress_api_fetch_non_shim__WEBPACK_IMPORTED_MODULE_0___default().use((_wordpress_api_fetch_non_shim__WEBPACK_IMPORTED_MODULE_0___default().preloadingMiddleware));

/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((_wordpress_api_fetch_non_shim__WEBPACK_IMPORTED_MODULE_0___default()));

/***/ }),

/***/ "./js/components/AccessibleWarningIcon.js":
/*!************************************************!*\
  !*** ./js/components/AccessibleWarningIcon.js ***!
  \************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AccessibleWarningIcon)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _VisuallyHidden__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./VisuallyHidden */ "./js/components/VisuallyHidden.js");
/* harmony import */ var _svg_icons_warning_v2_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/svg/icons/warning-v2.svg */ "./svg/icons/warning-v2.svg");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AccessibleWarningIcon component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



function AccessibleWarningIcon({
  height = 12,
  screenReaderText = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Error', 'google-site-kit'),
  width = 14
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.Fragment, {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_VisuallyHidden__WEBPACK_IMPORTED_MODULE_1__["default"], {
      children: screenReaderText
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_svg_icons_warning_v2_svg__WEBPACK_IMPORTED_MODULE_2__["default"], {
      width: width,
      height: height
    })]
  });
}
AccessibleWarningIcon.propTypes = {
  height: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().number),
  screenReaderText: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string),
  width: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().number)
};

/***/ }),

/***/ "./js/components/AdminScreenTooltip/AdminScreenTooltip.js":
/*!****************************************************************!*\
  !*** ./js/components/AdminScreenTooltip/AdminScreenTooltip.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   AdminScreenTooltip: () => (/* binding */ AdminScreenTooltip)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_components_JoyrideTooltip__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/JoyrideTooltip */ "./js/components/JoyrideTooltip.js");
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/hooks/useBreakpoint */ "./js/hooks/useBreakpoint.ts");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AdminMenuTooltip component.
 *
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */







function AdminScreenTooltip() {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_4__["default"])();
  const {
    setValue
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_UI);
  const breakpoint = (0,_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_5__.useBreakpoint)();
  const {
    isTooltipVisible = false,
    target,
    placement,
    className,
    tooltipSlug,
    title,
    content,
    dismissLabel
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_UI).getValue('admin-screen-tooltip') || {
    isTooltipVisible: false
  });
  function handleViewTooltip() {
    (0,_js_util__WEBPACK_IMPORTED_MODULE_3__.trackEvent)(`${viewContext}_${tooltipSlug}`, 'tooltip_view');
  }
  const handleDismissTooltip = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_7__.useCallback)(() => {
    // Track dismiss event.
    if (tooltipSlug) {
      (0,_js_util__WEBPACK_IMPORTED_MODULE_3__.trackEvent)(`${viewContext}_${tooltipSlug}`, 'tooltip_dismiss');
    }
    setValue('admin-screen-tooltip', undefined);
  }, [setValue, tooltipSlug, viewContext]);
  if (!isTooltipVisible) {
    return null;
  }
  const isMobileTablet = breakpoint === _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_5__.BREAKPOINT_SMALL || breakpoint === _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_5__.BREAKPOINT_TABLET;
  const desktopTarget = target !== null && target !== void 0 ? target : '#adminmenu [href*="page=googlesitekit-settings"]';
  const desktopPlacement = placement !== null && placement !== void 0 ? placement : 'right';
  function desktopClassName() {
    if (className) {
      return className;
    }
    return !target ? 'googlesitekit-tour-tooltip__fixed-settings-tooltip' : undefined;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_js_components_JoyrideTooltip__WEBPACK_IMPORTED_MODULE_1__["default"], {
    target: isMobileTablet ? 'body' : desktopTarget,
    placement: isMobileTablet ? 'center' : desktopPlacement,
    className: isMobileTablet ? 'googlesitekit-tour-tooltip__modal_step' : desktopClassName(),
    disableOverlay: !isMobileTablet,
    slug: "admin-screen-tooltip",
    title: title,
    content: content,
    dismissLabel: dismissLabel,
    onView: handleViewTooltip,
    onDismiss: handleDismissTooltip
  });
}

/***/ }),

/***/ "./js/components/AdminScreenTooltip/index.js":
/*!***************************************************!*\
  !*** ./js/components/AdminScreenTooltip/index.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   AdminScreenTooltip: () => (/* reexport safe */ _AdminScreenTooltip__WEBPACK_IMPORTED_MODULE_1__.AdminScreenTooltip),
/* harmony export */   useShowTooltip: () => (/* reexport safe */ _useShowTooltip__WEBPACK_IMPORTED_MODULE_0__.useShowTooltip)
/* harmony export */ });
/* harmony import */ var _useShowTooltip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./useShowTooltip */ "./js/components/AdminScreenTooltip/useShowTooltip.js");
/* harmony import */ var _AdminScreenTooltip__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AdminScreenTooltip */ "./js/components/AdminScreenTooltip/AdminScreenTooltip.js");



/***/ }),

/***/ "./js/components/AdminScreenTooltip/useShowTooltip.js":
/*!************************************************************!*\
  !*** ./js/components/AdminScreenTooltip/useShowTooltip.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   useShowTooltip: () => (/* binding */ useShowTooltip)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");



function useShowTooltip(tooltipSettings) {
  const {
    setValue
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_UI);
  return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useCallback)(() => {
    setValue('admin-screen-tooltip', {
      isTooltipVisible: true,
      ...tooltipSettings
    });
  }, [setValue, tooltipSettings]);
}

/***/ }),

/***/ "./js/components/Badge.js":
/*!********************************!*\
  !*** ./js/components/Badge.js ***!
  \********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Badge component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


const Badge = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.forwardRef)(({
  label,
  className,
  hasLeftSpacing = false,
  ...rest
}, ref) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("span", {
  ref: ref,
  ...rest,
  className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-badge', className, {
    'googlesitekit-badge--has-left-spacing': hasLeftSpacing
  }),
  children: label
}));
Badge.displayName = 'Badge';
Badge.propTypes = {
  label: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,
  hasLeftSpacing: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool)
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Badge);

/***/ }),

/***/ "./js/components/BadgeWithTooltip.js":
/*!*******************************************!*\
  !*** ./js/components/BadgeWithTooltip.js ***!
  \*******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ BadgeWithTooltip)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _InfoTooltip__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./InfoTooltip */ "./js/components/InfoTooltip.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * BadgeWithTooltip component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Internal dependencies
 */


function BadgeWithTooltip({
  className = '',
  label,
  onTooltipOpen,
  tooltipTitle
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("span", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-badge-with-tooltip', 'googlesitekit-badge', className),
    children: [label, tooltipTitle && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_InfoTooltip__WEBPACK_IMPORTED_MODULE_1__["default"], {
      onOpen: onTooltipOpen,
      title: tooltipTitle
    })]
  });
}
BadgeWithTooltip.propTypes = {
  onTooltipOpen: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),
  tooltipTitle: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),
  className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  label: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node).isRequired
};

/***/ }),

/***/ "./js/components/Banner/CTAButton.js":
/*!*******************************************!*\
  !*** ./js/components/Banner/CTAButton.js ***!
  \*******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ CTAButton)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _svg_icons_external_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/svg/icons/external.svg */ "./svg/icons/external.svg");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */



function CTAButton({
  label,
  ariaLabel,
  disabled,
  inProgress,
  onClick,
  href,
  external = false,
  hideExternalIndicator = false
}) {
  if (!label || !onClick && !href) {
    return null;
  }
  let trailingIconToUse;
  if (external && !hideExternalIndicator) {
    trailingIconToUse = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_svg_icons_external_svg__WEBPACK_IMPORTED_MODULE_1__["default"], {
      width: 14,
      height: 14
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_0__.SpinnerButton, {
    className: "googlesitekit-banner__cta",
    "aria-label": ariaLabel,
    disabled: disabled || inProgress,
    isSaving: inProgress,
    onClick: onClick,
    href: href,
    target: external ? '_blank' : undefined,
    trailingIcon: trailingIconToUse,
    children: label
  });
}
CTAButton.propTypes = {
  label: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  ariaLabel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  disabled: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),
  inProgress: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),
  onClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),
  href: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  dismissOnClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),
  dismissOptions: prop_types__WEBPACK_IMPORTED_MODULE_3___default().shape({
    expiresInSeconds: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),
    skipHidingFromQueue: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool)
  })
};

/***/ }),

/***/ "./js/components/Banner/Description.js":
/*!*********************************************!*\
  !*** ./js/components/Banner/Description.js ***!
  \*********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Description)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _LearnMoreLink__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./LearnMoreLink */ "./js/components/Banner/LearnMoreLink.tsx");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



function Description({
  className,
  description,
  learnMoreLink,
  additionalDescription,
  children
}) {
  function renderDescription() {
    if ((0,_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.isValidElement)(description)) {
      return description;
    }
    if ('string' === typeof description) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", {
        dangerouslySetInnerHTML: (0,_js_util__WEBPACK_IMPORTED_MODULE_1__.sanitizeHTML)(description, {
          ALLOWED_TAGS: ['strong', 'em', 'br', 'a'],
          ALLOWED_ATTR: ['href']
        })
      });
    }
    return description;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-banner__description', className),
    children: [renderDescription(), ' ', learnMoreLink?.href && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_LearnMoreLink__WEBPACK_IMPORTED_MODULE_2__["default"], {
      ...learnMoreLink
    }), additionalDescription && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
      className: "googlesitekit-banner__additional-description",
      children: additionalDescription
    }), children]
  });
}
Description.propTypes = {
  className: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string),
  description: prop_types__WEBPACK_IMPORTED_MODULE_5___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_5___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_5___default().node)]),
  learnMoreLink: prop_types__WEBPACK_IMPORTED_MODULE_5___default().shape(_LearnMoreLink__WEBPACK_IMPORTED_MODULE_2__["default"].propTypes),
  additionalDescription: prop_types__WEBPACK_IMPORTED_MODULE_5___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_5___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_5___default().node)]),
  children: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().node)
};

/***/ }),

/***/ "./js/components/Banner/DismissButton.js":
/*!***********************************************!*\
  !*** ./js/components/Banner/DismissButton.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ DismissButton)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


function DismissButton({
  className,
  label = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Maybe later', 'google-site-kit'),
  onClick,
  disabled,
  tertiary = true
}) {
  if (!onClick) {
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.Button, {
    className: className,
    onClick: onClick,
    disabled: disabled,
    tertiary: tertiary,
    children: label
  });
}
DismissButton.propTypes = {
  className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  label: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  onClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),
  disabled: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),
  tertiary: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),
  dismissOptions: prop_types__WEBPACK_IMPORTED_MODULE_3___default().shape({
    expiresInSeconds: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),
    skipHidingFromQueue: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool)
  })
};

/***/ }),

/***/ "./js/components/Banner/Footer.js":
/*!****************************************!*\
  !*** ./js/components/Banner/Footer.js ***!
  \****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Footer)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



function Footer({
  className,
  children
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-banner__footer', className),
    children: children
  });
}
Footer.propTypes = {
  className: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),
  children: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().node)
};

/***/ }),

/***/ "./js/components/Banner/HelpText.js":
/*!******************************************!*\
  !*** ./js/components/Banner/HelpText.js ***!
  \******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ HelpText)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



function HelpText({
  className,
  children
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("p", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-banner__help-text', className),
    children: children
  });
}
HelpText.propTypes = {
  className: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),
  children: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().node)
};

/***/ }),

/***/ "./js/components/Banner/LearnMoreLink.tsx":
/*!************************************************!*\
  !*** ./js/components/Banner/LearnMoreLink.tsx ***!
  \************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* provided dependency */ var React = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/index.js");
/**
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */

/**
 * Renders a "Learn More" link component, usually used to append "Learn more" with a
 * specified URL to content like a paragraph.
 *
 * @since 1.153.0
 *
 * @param props            The props for the component.
 * @param props.className  The class name for the link.
 * @param [props.external] Whether the link is external. Optional, defaults to true.
 * @param props.href       The URL for the link.
 * @param props.label      The label for the link.
 * @param [props.onClick]  The function to call when the link is clicked. Optional, defaults to an empty function.
 * @return The rendered component.
 */
const LearnMoreLink = ({
  className,
  external = true,
  href,
  label = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Learn more', 'google-site-kit'),
  onClick = () => {}
}) => {
  // Return null if no href is provided.
  //
  // This arguably shouldn't be optional, but until all usage of this
  // component are via typed code, we need this safeguard.
  if (!href) {
    return null;
  }
  return (
    /*#__PURE__*/
    // @ts-expect-error `Link` component is not currently typed, so this
    // results in an error because we're supplying a `children` prop.
    React.createElement(_js_components_Link__WEBPACK_IMPORTED_MODULE_1__["default"], {
      href: href,
      className: className,
      onClick: onClick,
      external: external
    }, label)
  );
};
LearnMoreLink.propTypes = {
  href: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,
  className: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),
  label: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),
  external: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),
  onClick: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func)
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (LearnMoreLink);

/***/ }),

/***/ "./js/components/Banner/Title.js":
/*!***************************************!*\
  !*** ./js/components/Banner/Title.js ***!
  \***************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Title)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



function Title({
  className,
  children
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("p", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-banner__title', className),
    children: children
  });
}
Title.propTypes = {
  className: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),
  children: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().node)
};

/***/ }),

/***/ "./js/components/Banner/TitleIcon.js":
/*!*******************************************!*\
  !*** ./js/components/Banner/TitleIcon.js ***!
  \*******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ TitleIcon)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



function TitleIcon({
  className,
  children
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-banner__title-icon', className),
    children: children
  });
}
TitleIcon.propTypes = {
  className: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),
  children: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().node)
};

/***/ }),

/***/ "./js/components/Banner/index.js":
/*!***************************************!*\
  !*** ./js/components/Banner/index.js ***!
  \***************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_13__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/hooks/useBreakpoint */ "./js/hooks/useBreakpoint.ts");
/* harmony import */ var _TitleIcon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./TitleIcon */ "./js/components/Banner/TitleIcon.js");
/* harmony import */ var _Title__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Title */ "./js/components/Banner/Title.js");
/* harmony import */ var _Description__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Description */ "./js/components/Banner/Description.js");
/* harmony import */ var _HelpText__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./HelpText */ "./js/components/Banner/HelpText.js");
/* harmony import */ var _LearnMoreLink__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./LearnMoreLink */ "./js/components/Banner/LearnMoreLink.tsx");
/* harmony import */ var _CTAButton__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./CTAButton */ "./js/components/Banner/CTAButton.js");
/* harmony import */ var _DismissButton__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./DismissButton */ "./js/components/Banner/DismissButton.js");
/* harmony import */ var _Footer__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./Footer */ "./js/components/Banner/Footer.js");
/* harmony import */ var _js_components_Notice__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/components/Notice */ "./js/components/Notice/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */











const Banner = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_12__.forwardRef)(({
  className,
  titleIcon,
  title,
  description,
  additionalDescription,
  errorText,
  helpText,
  learnMoreLink,
  dismissButton,
  ctaButton,
  svg,
  // NOTE: SVGs must be imported with the ?url suffix for use as a backgroundImage in this component.
  footer
}, ref) => {
  const breakpoint = (0,_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_1__.useBreakpoint)();
  const isMobileOrTablet = breakpoint === _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_1__.BREAKPOINT_SMALL || breakpoint === _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_1__.BREAKPOINT_TABLET;
  let SVGData = null;
  if (isMobileOrTablet && svg?.mobile) {
    SVGData = svg.mobile;
  } else if (!isMobileOrTablet && svg?.desktop) {
    SVGData = svg.desktop;
  }
  const svgMode = svg?.verticalPosition ? svg.verticalPosition : 'center';
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)("div", {
    ref: ref,
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-banner', className),
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)("div", {
      className: "googlesitekit-banner__content",
      children: [titleIcon && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_TitleIcon__WEBPACK_IMPORTED_MODULE_2__["default"], {
        children: titleIcon
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_Title__WEBPACK_IMPORTED_MODULE_3__["default"], {
        children: title
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_Description__WEBPACK_IMPORTED_MODULE_4__["default"], {
        description: description,
        learnMoreLink: learnMoreLink,
        additionalDescription: additionalDescription
      }), helpText && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_HelpText__WEBPACK_IMPORTED_MODULE_5__["default"], {
        children: helpText
      }), errorText && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_Notice__WEBPACK_IMPORTED_MODULE_10__["default"], {
        type: "error",
        description: errorText
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)("div", {
        className: "googlesitekit-notice__action",
        children: [ctaButton && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_CTAButton__WEBPACK_IMPORTED_MODULE_7__["default"], {
          ...ctaButton
        }), dismissButton?.onClick && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_DismissButton__WEBPACK_IMPORTED_MODULE_8__["default"], {
          ...dismissButton
        })]
      })]
    }), SVGData && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("div", {
      className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-banner__svg-wrapper', {
        [`googlesitekit-banner__svg-wrapper--${svgMode}`]: svgMode
      }),
      style: {
        backgroundImage: `url(${SVGData})`
      }
    }), footer && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_Footer__WEBPACK_IMPORTED_MODULE_9__["default"], {
      children: footer
    })]
  });
});
Banner.propTypes = {
  titleIcon: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().node),
  title: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().string),
  description: prop_types__WEBPACK_IMPORTED_MODULE_13___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_13___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_13___default().node)]),
  additionalDescription: prop_types__WEBPACK_IMPORTED_MODULE_13___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_13___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_13___default().node)]),
  errorText: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().string),
  helpText: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().string),
  learnMoreLink: prop_types__WEBPACK_IMPORTED_MODULE_13___default().shape(_LearnMoreLink__WEBPACK_IMPORTED_MODULE_6__["default"].propTypes),
  dismissButton: prop_types__WEBPACK_IMPORTED_MODULE_13___default().shape(_DismissButton__WEBPACK_IMPORTED_MODULE_8__["default"].propTypes),
  ctaButton: prop_types__WEBPACK_IMPORTED_MODULE_13___default().shape(_CTAButton__WEBPACK_IMPORTED_MODULE_7__["default"].propTypes),
  svg: prop_types__WEBPACK_IMPORTED_MODULE_13___default().shape({
    desktop: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().elementType),
    mobile: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().elementType),
    verticalPosition: prop_types__WEBPACK_IMPORTED_MODULE_13___default().oneOf(['top', 'center', 'bottom'])
  }),
  footer: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().node)
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Banner);

/***/ }),

/***/ "./js/components/ChangeArrow.js":
/*!**************************************!*\
  !*** ./js/components/ChangeArrow.js ***!
  \**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * External dependencies
 */



function ChangeArrow({
  direction,
  invertColor,
  width,
  height
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("svg", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-change-arrow', `googlesitekit-change-arrow--${direction}`, {
      'googlesitekit-change-arrow--inverted-color': invertColor
    }),
    width: width,
    height: height,
    viewBox: "0 0 10 10",
    fill: "none",
    xmlns: "http://www.w3.org/2000/svg",
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("path", {
      d: "M5.625 10L5.625 2.375L9.125 5.875L10 5L5 -1.76555e-07L-2.7055e-07 5L0.875 5.875L4.375 2.375L4.375 10L5.625 10Z",
      fill: "currentColor"
    })
  });
}
ChangeArrow.propTypes = {
  direction: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),
  invertColor: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),
  width: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().number),
  height: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().number)
};
ChangeArrow.defaultProps = {
  direction: 'up',
  invertColor: false,
  width: 9,
  height: 9
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ChangeArrow);

/***/ }),

/***/ "./js/components/ChangeBadge.js":
/*!**************************************!*\
  !*** ./js/components/ChangeBadge.js ***!
  \**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ ChangeBadge)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * ChangeBadge component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Internal dependencies
 */


function ChangeBadge(props) {
  const {
    previousValue,
    currentValue,
    isAbsolute
  } = props;
  const change = isAbsolute ? currentValue - previousValue : (0,_js_util__WEBPACK_IMPORTED_MODULE_1__.calculateChange)(previousValue, currentValue);
  const isNegative = change < 0;
  const isZero = change === 0;

  // Do not display the change badge if the change value can't be calculated.
  if (change === null) {
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-change-badge', {
      'googlesitekit-change-badge--negative': isNegative,
      'googlesitekit-change-badge--zero': isZero
    }),
    children: (0,_js_util__WEBPACK_IMPORTED_MODULE_1__.numFmt)(change, {
      style: 'percent',
      signDisplay: 'exceptZero',
      maximumFractionDigits: 1
    })
  });
}
ChangeBadge.propTypes = {
  isAbsolute: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),
  previousValue: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired,
  currentValue: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired
};

/***/ }),

/***/ "./js/components/DataBlock/Change.js":
/*!*******************************************!*\
  !*** ./js/components/DataBlock/Change.js ***!
  \*******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_components_ChangeArrow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/components/ChangeArrow */ "./js/components/ChangeArrow.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Change component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



function Change({
  change,
  changeDataUnit,
  period,
  invertChangeColor
}) {
  let changeFormatted = change;

  // If changeDataUnit is given, try using it as currency first, otherwise add it as suffix.
  if (changeDataUnit) {
    if (changeDataUnit === '%') {
      // Format percentage change with only 1 digit instead of the usual 2.
      changeFormatted = (0,_js_util__WEBPACK_IMPORTED_MODULE_2__.numFmt)(change, {
        style: 'percent',
        signDisplay: 'never',
        maximumFractionDigits: 1
      });
    } else {
      changeFormatted = (0,_js_util__WEBPACK_IMPORTED_MODULE_2__.numFmt)(change, changeDataUnit);
    }
  }

  // If period is given (requires %s placeholder), add it.
  if (period) {
    changeFormatted = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.sprintf)(period, changeFormatted);
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-data-block__change', {
      'googlesitekit-data-block__change--no-change': !change
    }),
    children: [!!change && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", {
      className: "googlesitekit-data-block__arrow",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_js_components_ChangeArrow__WEBPACK_IMPORTED_MODULE_3__["default"], {
        direction: 0 < parseFloat(change) ? 'up' : 'down',
        invertColor: invertChangeColor
      })
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", {
      className: "googlesitekit-data-block__value",
      children: changeFormatted
    })]
  });
}
Change.propTypes = {
  change: prop_types__WEBPACK_IMPORTED_MODULE_5___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_5___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_5___default().number)]),
  changeDataUnit: prop_types__WEBPACK_IMPORTED_MODULE_5___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_5___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_5___default().bool)]),
  period: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string),
  invertChangeColor: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().bool)
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Change);

/***/ }),

/***/ "./js/components/DataBlock/Content.js":
/*!********************************************!*\
  !*** ./js/components/DataBlock/Content.js ***!
  \********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Content)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _Sparkline__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Sparkline */ "./js/components/DataBlock/Sparkline.js");
/* harmony import */ var _js_components_Badge__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/Badge */ "./js/components/Badge.js");
/* harmony import */ var _Change__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Change */ "./js/components/DataBlock/Change.js");
/* harmony import */ var _js_components_SourceLink__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/SourceLink */ "./js/components/SourceLink.tsx");
/* harmony import */ var _js_components_Typography__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/Typography */ "./js/components/Typography/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Content component for DataBlock.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */







function Content({
  title = '',
  datapoint = null,
  datapointUnit = '',
  change = null,
  changeDataUnit = '',
  period = '',
  source,
  sparkline,
  invertChangeColor = false,
  gatheringData = false,
  badge
}) {
  const datapointFormatted = datapoint === undefined ? datapoint : (0,_js_util__WEBPACK_IMPORTED_MODULE_0__.numFmt)(datapoint, datapointUnit);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__.Fragment, {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      className: "googlesitekit-data-block__title-datapoint-wrapper",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_5__["default"], {
        as: "h3",
        size: "small",
        type: "title",
        className: " googlesitekit-subheading-1 googlesitekit-data-block__title ",
        children: [badge === true ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_js_components_Badge__WEBPACK_IMPORTED_MODULE_2__["default"], {
          "aria-hidden": "true",
          className: "googlesitekit-badge--hidden",
          label: "X" // This is a minimal placeholder value to provide the correct height without too much width.
        }) : badge, /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
          className: "googlesitekit-data-block__title-inner",
          children: title
        })]
      }), !gatheringData && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
        className: "googlesitekit-data-block__datapoint",
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
          className: "googlesitekit-data-block__datapoint--resize",
          children: datapointFormatted
        })
      })]
    }), !gatheringData && sparkline && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Sparkline__WEBPACK_IMPORTED_MODULE_1__["default"], {
      sparkline: sparkline,
      invertChangeColor: invertChangeColor
    }), !gatheringData && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      className: "googlesitekit-data-block__change-source-wrapper",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Change__WEBPACK_IMPORTED_MODULE_3__["default"], {
        change: change,
        changeDataUnit: changeDataUnit,
        period: period,
        invertChangeColor: invertChangeColor
      }), source && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_js_components_SourceLink__WEBPACK_IMPORTED_MODULE_4__["default"], {
        className: "googlesitekit-data-block__source",
        name: source.name,
        href: source.link,
        external: source?.external
      })]
    })]
  });
}
Content.propTypes = {
  title: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().string),
  datapoint: prop_types__WEBPACK_IMPORTED_MODULE_8___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_8___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_8___default().number)]),
  datapointUnit: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().string),
  change: prop_types__WEBPACK_IMPORTED_MODULE_8___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_8___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_8___default().number)]),
  changeDataUnit: prop_types__WEBPACK_IMPORTED_MODULE_8___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_8___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool)]),
  period: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().string),
  source: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().object),
  sparkline: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().element),
  invertChangeColor: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool),
  gatheringData: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool),
  badge: prop_types__WEBPACK_IMPORTED_MODULE_8___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool), (prop_types__WEBPACK_IMPORTED_MODULE_8___default().node)])
};

/***/ }),

/***/ "./js/components/DataBlock/Sparkline.js":
/*!**********************************************!*\
  !*** ./js/components/DataBlock/Sparkline.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Sparkline component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


function Sparkline({
  sparkline,
  invertChangeColor
}) {
  // The `sparkline` prop is passed as a component, but if `invertChangeColor`
  // is set, we should pass that to `<Sparkline>`. In that case, we clone
  // the element and add the prop.
  let sparklineComponent = sparkline;
  if (sparklineComponent && invertChangeColor) {
    sparklineComponent = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.cloneElement)(sparkline, {
      invertChangeColor
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
    className: "googlesitekit-data-block__sparkline",
    children: sparklineComponent
  });
}
Sparkline.propTypes = {
  sparkline: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().element),
  invertChangeColor: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool)
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Sparkline);

/***/ }),

/***/ "./js/components/DataBlock/index.js":
/*!******************************************!*\
  !*** ./js/components/DataBlock/index.js ***!
  \******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _js_components_GatheringDataNotice__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/GatheringDataNotice */ "./js/components/GatheringDataNotice.js");
/* harmony import */ var _Content__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Content */ "./js/components/DataBlock/Content.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * DataBlock component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



function DataBlock({
  stat = null,
  className = '',
  title = '',
  datapoint = null,
  datapointUnit = '',
  change = null,
  changeDataUnit = '',
  context = 'default',
  period = '',
  selected = false,
  source,
  sparkline,
  handleStatSelection = null,
  invertChangeColor = false,
  gatheringData = false,
  gatheringDataNoticeStyle = _js_components_GatheringDataNotice__WEBPACK_IMPORTED_MODULE_1__.NOTICE_STYLE.DEFAULT,
  badge
}) {
  const handleClick = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.useCallback)(() => {
    if (!gatheringData && handleStatSelection) {
      handleStatSelection(stat);
    }
  }, [gatheringData, handleStatSelection, stat]);
  const handleKeyDown = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.useCallback)(e => {
    if ('Enter' === e.key || ' ' === e.key) {
      e.preventDefault();
      handleClick();
    }
  }, [handleClick]);
  const isButtonContext = 'button' === context;
  const role = isButtonContext ? 'button' : '';
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-data-block', className, `googlesitekit-data-block--${context}`, {
      'googlesitekit-data-block--selected': selected,
      'googlesitekit-data-block--is-gathering-data': gatheringData
    }),
    tabIndex: isButtonContext && !gatheringData ? '0' : '-1',
    role: handleStatSelection && role,
    onClick: handleClick,
    onKeyDown: handleKeyDown,
    "aria-disabled": gatheringData || undefined,
    "aria-label": handleStatSelection && title,
    "aria-pressed": handleStatSelection && selected,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_Content__WEBPACK_IMPORTED_MODULE_2__["default"], {
      title: title,
      datapoint: datapoint,
      datapointUnit: datapointUnit,
      change: change,
      changeDataUnit: changeDataUnit,
      period: period,
      source: source,
      sparkline: sparkline,
      invertChangeColor: invertChangeColor,
      gatheringData: gatheringData,
      badge: badge
    }), gatheringData && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_js_components_GatheringDataNotice__WEBPACK_IMPORTED_MODULE_1__["default"], {
      style: gatheringDataNoticeStyle
    })]
  });
}
DataBlock.propTypes = {
  stat: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().number),
  className: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string),
  title: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string),
  datapoint: prop_types__WEBPACK_IMPORTED_MODULE_5___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_5___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_5___default().number)]),
  datapointUnit: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string),
  change: prop_types__WEBPACK_IMPORTED_MODULE_5___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_5___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_5___default().number)]),
  changeDataUnit: prop_types__WEBPACK_IMPORTED_MODULE_5___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_5___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_5___default().bool)]),
  context: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string),
  period: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string),
  selected: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().bool),
  source: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().object),
  sparkline: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().element),
  handleStatSelection: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().func),
  invertChangeColor: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().bool),
  gatheringData: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().bool),
  gatheringDataNoticeStyle: prop_types__WEBPACK_IMPORTED_MODULE_5___default().oneOf(Object.values(_js_components_GatheringDataNotice__WEBPACK_IMPORTED_MODULE_1__.NOTICE_STYLE)),
  badge: prop_types__WEBPACK_IMPORTED_MODULE_5___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_5___default().bool), (prop_types__WEBPACK_IMPORTED_MODULE_5___default().node)])
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (DataBlock);

/***/ }),

/***/ "./js/components/DataBlockGroup.js":
/*!*****************************************!*\
  !*** ./js/components/DataBlockGroup.js ***!
  \*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ DataBlockGroup)
/* harmony export */ });
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useEvent.js");
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useMount.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _js_hooks_useDebounce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/hooks/useDebounce */ "./js/hooks/useDebounce.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * DataBlockGroup component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



function DataBlockGroup({
  className,
  children
}) {
  const ref = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useRef)();
  function adjustFontSize() {
    const blocks = ref?.current?.querySelectorAll('.googlesitekit-data-block');
    if (!blocks?.length) {
      return;
    }

    // Find the smallest font size needed across all blocks to fit without overflow.
    let smallestScaleFactor = 1;

    // Reset font sizes first to get accurate measurement, specifically on resize.
    setFontSizes(blocks, '');
    blocks.forEach(block => {
      const dataPoint = block.querySelector('.googlesitekit-data-block__datapoint');
      if (!dataPoint) {
        return;
      }
      const parentWidth = dataPoint?.parentElement?.offsetWidth;
      if (dataPoint.scrollWidth > parentWidth) {
        // Calculate the exact scale factor needed to resize the content to the parent.
        const scaleFactor = parentWidth / dataPoint.scrollWidth;

        // Round the scale factor down to one decimal place. This creates a
        // small visual buffer to prevent the text from appearing cramped.
        // It also improves stability by preventing minor pixel fluctuations
        // during resize from causing distracting font size changes.
        const roundedScaleFactor = Math.floor(scaleFactor * 10) / 10;
        if (roundedScaleFactor < smallestScaleFactor) {
          smallestScaleFactor = roundedScaleFactor;
        }
      }
    });

    // Apply the smallest font size to all blocks if adjustment is needed.
    if (smallestScaleFactor < 1 && smallestScaleFactor > 0) {
      const fontSize = parseInt(__webpack_require__.g?.getComputedStyle(blocks[0].querySelector('.googlesitekit-data-block__datapoint'))?.fontSize, 10);
      const newSize = Math.floor(fontSize * smallestScaleFactor);
      const clampedNewSize = Math.max(newSize, 14); // Don't allow the font size to go below 14px.
      setFontSizes(blocks, `${clampedNewSize}px`);
    }
  }
  function setFontSizes(blocks, adjustedSize) {
    blocks.forEach(block => {
      const dataPoint = block?.querySelector('.googlesitekit-data-block__datapoint');
      if (!dataPoint) {
        return;
      }
      dataPoint.style.fontSize = adjustedSize;
    });
  }

  // Debounce the adjustFontSize function to prevent excessive calls on resize.
  const debouncedAdjustFontSize = (0,_js_hooks_useDebounce__WEBPACK_IMPORTED_MODULE_0__.useDebounce)(adjustFontSize, 50);
  (0,react_use__WEBPACK_IMPORTED_MODULE_3__["default"])('resize', debouncedAdjustFontSize);
  (0,react_use__WEBPACK_IMPORTED_MODULE_4__["default"])(() => {
    debouncedAdjustFontSize();
  });
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
    ref: ref,
    className: className,
    children: children
  });
}

/***/ }),

/***/ "./js/components/DetailsPermaLinks.js":
/*!********************************************!*\
  !*** ./js/components/DetailsPermaLinks.js ***!
  \********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ DetailsPermaLinks)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _Link__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Link */ "./js/components/Link.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Details Permalink Links component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */





function DetailsPermaLinks({
  title,
  path,
  serviceURL
}) {
  const siteURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_SITE).getReferenceSiteURL());
  const permaLink = (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.getFullURL)(siteURL, path);
  const detailsURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    return select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_SITE).getAdminURL('googlesitekit-dashboard', {
      permaLink
    });
  });
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__.Fragment, {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_Link__WEBPACK_IMPORTED_MODULE_3__["default"], {
      className: "googlesitekit-font-weight-medium",
      href: serviceURL || detailsURL,
      external: !!serviceURL,
      hideExternalIndicator: true,
      children: title
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_Link__WEBPACK_IMPORTED_MODULE_3__["default"], {
      className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-display-block', 'googlesitekit-overflow-wrap-break-word'),
      href: permaLink,
      target: "_blank" // No external styling.
      ,
      small: true,
      children: path
    })]
  });
}
DetailsPermaLinks.propTypes = {
  title: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string),
  path: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string),
  serviceURL: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string)
};

/***/ }),

/***/ "./js/components/DisplaySetting.js":
/*!*****************************************!*\
  !*** ./js/components/DisplaySetting.js ***!
  \*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   BLANK_SPACE: () => (/* binding */ BLANK_SPACE),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);
/**
 * DisplaySetting component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


const BLANK_SPACE = '\u00A0';
function DisplaySetting({
  value
}) {
  return value || BLANK_SPACE;
}
DisplaySetting.propTypes = {
  value: prop_types__WEBPACK_IMPORTED_MODULE_0___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_0___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_0___default().bool), (prop_types__WEBPACK_IMPORTED_MODULE_0___default().number)])
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (DisplaySetting);

/***/ }),

/***/ "./js/components/ErrorNotice.js":
/*!**************************************!*\
  !*** ./js/components/ErrorNotice.js ***!
  \**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ ErrorNotice)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/url */ "../node_modules/@wordpress/url/build-module/is-url.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_util_errors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/util/errors */ "./js/util/errors.js");
/* harmony import */ var _Notice__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Notice */ "./js/components/Notice/index.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * ErrorNotice component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */





function ErrorNotice({
  className,
  error,
  hasButton = false,
  storeName,
  message = error.message,
  noPrefix = false,
  skipRetryMessage,
  hideIcon = false
}) {
  const dispatch = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)();
  const selectorData = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    if (!storeName) {
      return null;
    }
    return select(storeName).getSelectorDataForError(error);
  });
  const handleRetry = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_6__.useCallback)(() => {
    dispatch(selectorData.storeName).invalidateResolution(selectorData.name, selectorData.args);
  }, [dispatch, selectorData]);

  // Do not display if there is no error and no direct message text is passed as a direct prop.
  // Also do not display if the error is for missing scopes as these are handled by a popup modal.
  if (!message || (0,_js_util_errors__WEBPACK_IMPORTED_MODULE_2__.isPermissionScopeError)(error)) {
    return null;
  }
  const shouldDisplayRetry = hasButton && (0,_js_util_errors__WEBPACK_IMPORTED_MODULE_2__.isErrorRetryable)(error, selectorData);

  /**
   * Error message to display to the user. Sometimes we append a retry message
   * or a reconnect URL, so we create a new variable for the message to display.
   */
  let errorMessageWithModifications = message;

  // Append "Try again" messaging if no retry button is present.
  if (!hasButton && !skipRetryMessage) {
    errorMessageWithModifications = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: Error message from Google API. */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('%s (Please try again.)', 'google-site-kit'), errorMessageWithModifications);
  }
  if (!noPrefix) {
    errorMessageWithModifications = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: $%s: Error message */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Error: %s', 'google-site-kit'), errorMessageWithModifications);
  }
  const reconnectURL = error?.data?.reconnectURL;
  if (reconnectURL && (0,_wordpress_url__WEBPACK_IMPORTED_MODULE_7__.isURL)(reconnectURL)) {
    /**
     * This error message uses HTML tags without using
     * `createInterpolateElement` because the error messages
     * that come from the server/API can also contain HTML (eg. links)
     * we want to render.
     *
     * Instead of creating a React node using `createInterpolateElement`,
     * we use `dangerouslySetInnerHTML` to allow the HTML we create and from
     * the server/API to be rendered as-intended.
     */
    errorMessageWithModifications = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: 1: Original error message 2: Reconnect URL */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('%1$s To fix this, <a href="%2$s">redo the plugin setup</a>.', 'google-site-kit'), errorMessageWithModifications, reconnectURL);
  }
  const sanitizeArgs = {
    ALLOWED_TAGS: ['a'],
    ALLOWED_ATTR: ['href']
  };
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_Notice__WEBPACK_IMPORTED_MODULE_3__["default"], {
    className: className,
    type: _Notice__WEBPACK_IMPORTED_MODULE_3__["default"].TYPES.ERROR,
    description:
    /*#__PURE__*/
    // The error messages that come from the server/API can contain
    // HTML (eg. links), so we use `dangerouslySetInnerHTML` and sanitize
    // the HTML to render these links.
    //
    // We tried to use `createInterpolateElement` but it does not work
    // with HTML tags that come from the server/API.
    (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
      dangerouslySetInnerHTML: (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.sanitizeHTML)(errorMessageWithModifications, sanitizeArgs)
    }),
    ctaButton: shouldDisplayRetry ? {
      label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Retry', 'google-site-kit'),
      onClick: handleRetry
    } : undefined,
    hideIcon: hideIcon
  });
}
ErrorNotice.propTypes = {
  className: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().string),
  error: prop_types__WEBPACK_IMPORTED_MODULE_8___default().shape({
    message: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().string)
  }),
  hasButton: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool),
  storeName: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().string),
  message: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().string),
  noPrefix: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool),
  skipRetryMessage: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool),
  hideIcon: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool)
};

/***/ }),

/***/ "./js/components/FeaturesProvider/FeaturesContext.js":
/*!***********************************************************!*\
  !*** ./js/components/FeaturesProvider/FeaturesContext.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _js_features__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/features */ "./js/features/index.js");
/**
 * Feature Flags context for React components.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */

const FeaturesContext = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.createContext)(_js_features__WEBPACK_IMPORTED_MODULE_0__.enabledFeatures);
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (FeaturesContext);

/***/ }),

/***/ "./js/components/GatheringDataNotice.js":
/*!**********************************************!*\
  !*** ./js/components/GatheringDataNotice.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   NOTICE_STYLE: () => (/* binding */ NOTICE_STYLE),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * GatheringDataNotice component.
 *
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


const NOTICE_STYLE = {
  DEFAULT: 'default',
  OVERLAY: 'overlay',
  SMALL: 'small',
  SMALL_OVERLAY: 'small-overlay',
  LARGE: 'large'
};
function GatheringDataNotice({
  style
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-gathering-data-notice', {
      [`googlesitekit-gathering-data-notice--has-style-${style}`]: !!style
    }),
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("span", {
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Gathering data…', 'google-site-kit')
    })
  });
}
GatheringDataNotice.propTypes = {
  style: prop_types__WEBPACK_IMPORTED_MODULE_3___default().oneOf(Object.values(NOTICE_STYLE))
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (GatheringDataNotice);

/***/ }),

/***/ "./js/components/GenericErrorHandlerActions.js":
/*!*****************************************************!*\
  !*** ./js/components/GenericErrorHandlerActions.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ GenericErrorHandlerActions)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Link */ "./js/components/Link.js");
/* harmony import */ var _ReportErrorButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ReportErrorButton */ "./js/components/ReportErrorButton/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * GenericErrorHandlerActions component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



function GenericErrorHandlerActions({
  message,
  componentStack
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", {
    className: "googlesitekit-generic-error-handler-actions",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_ReportErrorButton__WEBPACK_IMPORTED_MODULE_2__["default"], {
      message: message,
      componentStack: componentStack
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_Link__WEBPACK_IMPORTED_MODULE_1__["default"], {
      href: "https://wordpress.org/support/plugin/google-site-kit/",
      external: true,
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Report this problem', 'google-site-kit')
    })]
  });
}
GenericErrorHandlerActions.propTypes = {
  message: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string),
  componentStack: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string)
};

/***/ }),

/***/ "./js/components/GoogleChart/DateMarker.js":
/*!*************************************************!*\
  !*** ./js/components/GoogleChart/DateMarker.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ DateMarker)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/icons */ "../node_modules/@wordpress/icons/build-module/icon/index.js");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/icons */ "../node_modules/@wordpress/icons/build-module/library/info.js");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_hooks_useDebounce__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/hooks/useDebounce */ "./js/hooks/useDebounce.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * GoogleChart DateMarker component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */





function DateMarker({
  id,
  text
}) {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_1__["default"])();
  const eventCategory = `${viewContext}_ga4-data-collection-line`;
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useEffect)(() => {
    (0,_js_util__WEBPACK_IMPORTED_MODULE_3__.trackEvent)(eventCategory, 'chart_line_view');
  }, [eventCategory]);
  const trackTooltipOpen = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useCallback)(() => {
    (0,_js_util__WEBPACK_IMPORTED_MODULE_3__.trackEvent)(eventCategory, 'chart_tooltip_view');
  }, [eventCategory]);
  const handleTooltipOpen = (0,_js_hooks_useDebounce__WEBPACK_IMPORTED_MODULE_2__.useDebounce)(trackTooltipOpen, 5000, {
    leading: true,
    trailing: false
  });
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.Fragment, {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("div", {
      id: `googlesitekit-chart__date-marker-line--${id}`,
      className: "googlesitekit-chart__date-marker-line"
    }), text && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("div", {
      id: `googlesitekit-chart__date-marker-tooltip--${id}`,
      className: "googlesitekit-chart__date-marker-tooltip",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_0__.Tooltip, {
        title: text,
        onOpen: handleTooltipOpen,
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", {
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_wordpress_icons__WEBPACK_IMPORTED_MODULE_6__["default"], {
            fill: "currentColor",
            icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_7__["default"],
            size: 18
          })
        })
      })
    })]
  });
}

/***/ }),

/***/ "./js/components/GoogleChart/index.js":
/*!********************************************!*\
  !*** ./js/components/GoogleChart/index.js ***!
  \********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ GoogleChart)
/* harmony export */ });
/* harmony import */ var _js_util_initialize_google_global__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/util/initialize-google-global */ "./js/util/initialize-google-global.js");
/* harmony import */ var _js_util_initialize_google_global__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_js_util_initialize_google_global__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_20__);
/* harmony import */ var react_google_charts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-google-charts */ "../node_modules/react-google-charts/dist/index.esm.js");
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useMount.js");
/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @wordpress/compose */ "../node_modules/@wordpress/compose/build-module/hooks/use-instance-id/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/PreviewBlock */ "./js/components/PreviewBlock.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_components_GatheringDataNotice__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/GatheringDataNotice */ "./js/components/GatheringDataNotice.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _js_components_GoogleChartErrorHandler__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/components/GoogleChartErrorHandler */ "./js/components/GoogleChartErrorHandler/index.js");
/* harmony import */ var _DateMarker__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./DateMarker */ "./js/components/GoogleChart/DateMarker.js");
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_util_is_site_kit_screen__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/js/util/is-site-kit-screen */ "./js/util/is-site-kit-screen.js");
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./utils */ "./js/components/GoogleChart/utils.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/js/hooks/useBreakpoint */ "./js/hooks/useBreakpoint.ts");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * GoogleChart component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/* eslint-disable react-hooks/exhaustive-deps */

/* Ensures `google` global is undefined before loading `react-google-charts` library */


/**
 * External dependencies
 */






/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */













function GoogleChart(props) {
  const {
    chartEvents,
    chartType,
    children,
    className,
    data,
    dateMarkers,
    getChartWrapper,
    height,
    loaded,
    loadingHeight,
    loadingWidth,
    onMouseOver,
    onMouseOut,
    onReady,
    onSelect,
    selectedStats,
    width,
    options,
    gatheringData,
    ...otherProps
  } = props;

  /**
   * Size of the icons (in pixels) used in the tooltip.
   */
  const iconSize = 18;
  const instanceID = (0,_wordpress_compose__WEBPACK_IMPORTED_MODULE_17__["default"])(GoogleChart);
  const breakpoint = (0,_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_15__.useBreakpoint)();
  const {
    startDate,
    endDate
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_7__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).getDateRangeDates({
    offsetDays: 0
  }));
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_11__["default"])();
  const googleChartsCollisionError = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_7__.useSelect)(select => select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_10__.CORE_UI).getValue('googleChartsCollisionError'));
  const [isChartLoaded, setIsChartLoaded] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useState)(false);
  const {
    setValue
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_7__.useDispatch)(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_10__.CORE_UI);
  const filteredData = (0,_utils__WEBPACK_IMPORTED_MODULE_13__.getFilteredChartData)(data, selectedStats);
  const loadingShape = chartType === 'PieChart' ? 'circular' : 'square';
  const loadingDimensions = (0,_utils__WEBPACK_IMPORTED_MODULE_13__.getLoadingDimensions)(loadingHeight, height, loadingWidth, width);
  const loader = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsx)("div", {
    className: "googlesitekit-chart-loading",
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_4__["default"], {
      className: "googlesitekit-chart-loading__wrapper",
      shape: loadingShape,
      ...loadingDimensions
    })
  });
  const chartWrapperRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useRef)();
  const googleRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useRef)();

  // Don't load Google Charts if another script on the page has already loaded
  // Google Charts.
  //
  // If another plugin loads Google Charts somewhere on the page, our charts
  // will likely encounter an error due to a version mismatch.
  //
  // This is because Google Charts is a singleton, and if another plugin loads
  // it first, our charts will use the same instance of Google Charts.
  //
  // See:
  // * https://github.com/google/site-kit-wp/issues/6350
  // * https://github.com/google/site-kit-wp/issues/6355
  (0,react_use__WEBPACK_IMPORTED_MODULE_19__["default"])(() => {
    if (googleChartsCollisionError !== undefined) {
      return;
    }

    // If we're on a Site Kit screen, we want "priority" over the
    // `google.charts` global so we don't render a bunch of charts errors,
    // see: https://github.com/google/site-kit-wp/issues/6439#issuecomment-1404491940
    //
    // The only way to do this is to remove the `google.charts` global
    // and allow the `react-google-charts` library to re-initialize it.
    if ((0,_js_util_is_site_kit_screen__WEBPACK_IMPORTED_MODULE_12__.isSiteKitScreen)(viewContext) && __webpack_require__.g?.google?.charts) {
      __webpack_require__.g.google.charts = undefined;
    }
    if (!(0,_js_util_is_site_kit_screen__WEBPACK_IMPORTED_MODULE_12__.isSiteKitScreen)(viewContext) && __webpack_require__.g?.google?.charts) {
      setValue('googleChartsCollisionError', true);
    } else {
      setValue('googleChartsCollisionError', false);
    }
  });
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useEffect)(() => {
    // Remove all event listeners after the component has unmounted.
    return () => {
      // eslint-disable-next-line no-unused-expressions
      if (googleRef.current && chartWrapperRef.current) {
        const {
          events
        } = googleRef.current.visualization;
        events.removeAllListeners(chartWrapperRef.current.getChart());
        events.removeAllListeners(chartWrapperRef.current);
      }
    };
  }, []);

  // These event listeners are added manually to the current chart because
  // `react-google-charts` doesn't support `mouseOver` or `mouseOut` events
  // in its `chartEvents` prop.
  // See: https://github.com/google/site-kit-wp/pull/2805#discussion_r579172660
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useLayoutEffect)(() => {
    if (onMouseOver) {
      // eslint-disable-next-line no-unused-expressions
      googleRef.current?.visualization.events.addListener(chartWrapperRef.current.getChart(), 'onmouseover', event => {
        onMouseOver(event, {
          chartWrapper: chartWrapperRef.current,
          google: googleRef.current
        });
      });
    }
    if (onMouseOut) {
      // eslint-disable-next-line no-unused-expressions
      googleRef.current?.visualization.events.addListener(chartWrapperRef.current.getChart(), 'onmouseout', event => {
        onMouseOut(event, {
          chartWrapper: chartWrapperRef.current,
          google: googleRef.current
        });
      });
    }
  }, [onMouseOver, onMouseOut]);

  // Checks to see if the date is within the date range.
  function isDateWithinRange(date) {
    // If any of the dates are not set, return false.
    if (!date || !startDate || !endDate) {
      return false;
    }
    if (
    // Don't render this marker if the date is before the first date
    // in the current date range.
    date.getTime() < (0,_js_util__WEBPACK_IMPORTED_MODULE_14__.stringToDate)(startDate).getTime() ||
    // Don't render this marker if the date is after the last date
    // in the current date range.
    date.getTime() > (0,_js_util__WEBPACK_IMPORTED_MODULE_14__.stringToDate)(endDate).getTime()) {
      return false;
    }
    return true;
  }

  // Only use markers if the date is within the current date range.
  const dateMarkersInRange = dateMarkers.filter(dateMarker => {
    // Valid use of `new Date()` with an argument.
    // eslint-disable-next-line sitekit/no-direct-date
    return isDateWithinRange(new Date(dateMarker.date));
  });

  /**
   * Adds any "key date" vertical lines/tooltips to the charts.
   */
  function addKeyDateLinesToChart() {
    if (!chartWrapperRef.current) {
      return;
    }
    if (!dateMarkersInRange.length) {
      return;
    }
    const chart = chartWrapperRef.current.getChart();
    const chartLayoutInterface = chart?.getChartLayoutInterface();
    const chartArea = chartLayoutInterface?.getChartAreaBoundingBox();
    const dataTable = chartWrapperRef.current.getDataTable();
    if (!chartLayoutInterface || !chartArea || !dataTable) {
      return;
    }

    // Add the dotted line and tooltip for each date marker.
    dateMarkersInRange.forEach((dateMarker, index) => {
      // Valid use of `new Date()` with an argument.
      // eslint-disable-next-line sitekit/no-direct-date
      const dateFromMarker = new Date(dateMarker.date);
      const chartLine = document.getElementById(`googlesitekit-chart__date-marker-line--${instanceID}-${index}`);
      invariant__WEBPACK_IMPORTED_MODULE_2___default()(chartLine, `#googlesitekit-chart__date-marker-line--${instanceID}-${index} is missing from the DOM, but required to render date markers.`);

      // We need to make sure the dates we use on the chart and on
      // this line are exactly the same, so we get the position on the
      // chart that matches the date we create from the date string.
      //
      // This prevents the line and the chart data from being
      // slightly out-of-alignment, see:
      // https://github.com/google/site-kit-wp/pull/6822#pullrequestreview-1376066844.
      const dateCoordinateX = Math.floor(chartLayoutInterface.getXLocation((0,_js_util__WEBPACK_IMPORTED_MODULE_14__.stringToDate)((0,_js_util__WEBPACK_IMPORTED_MODULE_14__.getDateString)(dateFromMarker))));

      // Align the dotted line with the date for this marker.
      Object.assign(chartLine.style, {
        left: `${dateCoordinateX - 1}px`,
        top: `${Math.floor(chartArea.top)}px`,
        height: `${Math.floor(chartArea.height)}px`,
        opacity: 1
      });

      // Text is optional, so only modify the DOM elements for the tooltip
      // text if the property was provided.
      if (dateMarker.text) {
        const tooltip = document.getElementById(`googlesitekit-chart__date-marker-tooltip--${instanceID}-${index}`);
        invariant__WEBPACK_IMPORTED_MODULE_2___default()(tooltip, `#googlesitekit-chart__date-marker-tooltip--${instanceID}-${index} is missing from the DOM, but required to render date marker tooltips.`);

        // Align the tooltip component with the date line.
        Object.assign(tooltip.style, {
          left: `${dateCoordinateX - iconSize / 2}px`,
          top: `${Math.floor(chartArea.top) - iconSize}px`,
          opacity: 1
        });
      }
    });
    const legendElement = document.querySelector(`#googlesitekit-chart-${instanceID} svg:first-of-type > g:first-of-type > g > g > text`)?.parentElement.parentElement.parentElement;

    // A legend is present if there are more than three `g` elements; charts
    // without legends won't have that many `g` elements so we don't need to
    // modify anything.
    const hasLegend = !!legendElement && document.querySelectorAll(`#googlesitekit-chart-${instanceID} svg:first-of-type > g`).length >= 3;

    // If there is a legend, move it up to make room for the date marker icon.
    if (hasLegend) {
      // `10px` is the best size to use to accommodate the bounding box of the
      // chart without needing to modify the chart's height.
      //
      // It allows the legend and the icon to fit without moving anything else
      // and without things feeling cramped or being cut off.
      legendElement.style.transform = 'translateY(-10px)';
    }
  }
  if (googleChartsCollisionError) {
    return null;
  }
  if (!loaded) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsx)("div", {
      className: classnames__WEBPACK_IMPORTED_MODULE_1___default()('googlesitekit-chart', 'googlesitekit-chart-loading__forced', className),
      children: loader
    });
  }
  const combinedChartEvents = (0,_utils__WEBPACK_IMPORTED_MODULE_13__.getCombinedChartEvents)([...(chartEvents || []),
  // Call the `addKeyDateLinesToChart` function after the chart
  // has been rendered.
  //
  // This is to ensure that the chart has finished rendering before
  // we try to add the lines. If we don't do this, the `chart`
  // variable (from `chartWrapper.getChart()`) will be `null`.
  {
    eventName: 'ready',
    callback: addKeyDateLinesToChart
  }], onReady, onSelect);
  const chartOptions = (0,_utils__WEBPACK_IMPORTED_MODULE_13__.getChartOptions)(options, {
    gatheringData,
    chartType,
    startDate,
    endDate,
    breakpoint
  });
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsx)(_js_components_GoogleChartErrorHandler__WEBPACK_IMPORTED_MODULE_8__["default"], {
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsxs)("div", {
      className: classnames__WEBPACK_IMPORTED_MODULE_1___default()('googlesitekit-chart', `googlesitekit-chart--${chartType}`, className),
      id: `googlesitekit-chart-${instanceID}`,
      tabIndex: -1,
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsx)(react_google_charts__WEBPACK_IMPORTED_MODULE_3__.Chart, {
        className: "googlesitekit-chart__inner",
        chartEvents: combinedChartEvents,
        chartLanguage: (0,_js_util__WEBPACK_IMPORTED_MODULE_14__.getLocale)(),
        chartType: chartType,
        chartVersion: "49",
        data: filteredData,
        loader: loader,
        height: height,
        getChartWrapper: (chartWrapper, google) => {
          // An issue with `react-google-charts` v4 causes the chart to
          // render the overlay before the chart in some cases when using
          // their own `onLoad` callback. This is a workaround to prevent
          // that issue but still provide notice that the chart is loaded.
          // See: https://github.com/google/site-kit-wp/issues/4945
          if (!isChartLoaded) {
            setIsChartLoaded(true);
          }

          // Remove all the event listeners on the old chart before we draw
          // a new one. Only run this if the old chart and the new chart
          // aren't the same reference though, otherwise we'll remove
          // existing `onReady` events and other event listeners, which will
          // cause bugs.
          if (chartWrapper !== chartWrapperRef.current) {
            // eslint-disable-next-line no-unused-expressions
            googleRef.current?.visualization.events.removeAllListeners(chartWrapperRef.current?.getChart());
            // eslint-disable-next-line no-unused-expressions
            googleRef.current?.visualization.events.removeAllListeners(chartWrapperRef.current);
          }
          chartWrapperRef.current = chartWrapper;
          googleRef.current = google;
          if (getChartWrapper) {
            getChartWrapper(chartWrapper, google);
          }
        },
        width: width,
        options: chartOptions,
        ...otherProps
      }), gatheringData && isChartLoaded && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsx)(_js_components_GatheringDataNotice__WEBPACK_IMPORTED_MODULE_6__["default"], {
        style: _js_components_GatheringDataNotice__WEBPACK_IMPORTED_MODULE_6__.NOTICE_STYLE.OVERLAY
      }), !!dateMarkersInRange.length && dateMarkersInRange.map((dateMarker, index) => {
        return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsx)(_DateMarker__WEBPACK_IMPORTED_MODULE_9__["default"], {
          id: `${instanceID}-${index}`,
          text: dateMarker.text
        }, `googlesitekit-chart__date-marker--${instanceID}-${index}`);
      }), children]
    })
  });
}
GoogleChart.propTypes = {
  className: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().string),
  children: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().node),
  chartEvents: prop_types__WEBPACK_IMPORTED_MODULE_20___default().arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_20___default().shape({
    eventName: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().string),
    callback: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().func)
  })),
  // Note: technically we support all types of charts that `react-google-charts`
  // supports, which is _all_ chart types from Google Charts. But we only list
  // the charts currently used in our codebase here, and only ones that we have
  // explicit support/styles/handling for.
  // See: https://github.com/google/site-kit-wp/pull/2916#discussion_r626620601
  chartType: prop_types__WEBPACK_IMPORTED_MODULE_20___default().oneOf(['LineChart', 'PieChart']).isRequired,
  data: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().array),
  dateMarkers: prop_types__WEBPACK_IMPORTED_MODULE_20___default().arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_20___default().shape({
    /**
     * The date to mark on the chart, in the format `'YYYY-MM-DD'`.
     */
    date: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().string).isRequired,
    /**
     * Text to display in a tooltip when the date marker is hovered.
     */
    text: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().string)
  })),
  getChartWrapper: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().func),
  height: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().string),
  loaded: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().bool),
  loadingHeight: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().string),
  loadingWidth: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().string),
  onMouseOut: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().func),
  onMouseOver: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().func),
  onReady: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().func),
  onSelect: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().func),
  selectedStats: prop_types__WEBPACK_IMPORTED_MODULE_20___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_20___default().number)),
  width: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().string),
  options: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().object),
  gatheringData: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().bool)
};
GoogleChart.defaultProps = {
  ...react_google_charts__WEBPACK_IMPORTED_MODULE_3__.Chart.defaultProps,
  dateMarkers: [],
  gatheringData: false,
  loaded: true
};

/***/ }),

/***/ "./js/components/GoogleChart/utils.js":
/*!********************************************!*\
  !*** ./js/components/GoogleChart/utils.js ***!
  \********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   getChartOptions: () => (/* binding */ getChartOptions),
/* harmony export */   getCombinedChartEvents: () => (/* binding */ getCombinedChartEvents),
/* harmony export */   getCurrencyPattern: () => (/* binding */ getCurrencyPattern),
/* harmony export */   getFilteredChartData: () => (/* binding */ getFilteredChartData),
/* harmony export */   getLoadingDimensions: () => (/* binding */ getLoadingDimensions)
/* harmony export */ });
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/hooks/useBreakpoint */ "./js/hooks/useBreakpoint.ts");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/**
 * Google Chart utilities.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */



/**
 * Returns the Google chart data, filtered by selected stats if present.
 *
 * @since 1.93.0
 *
 * @param {Array|undefined} data          Chart data.
 * @param {Array|undefined} selectedStats The columns that should be displayed for the data set.
 * @return {Object} The chart data, filtered by selected stats if present.
 */
function getFilteredChartData(data, selectedStats) {
  if (!selectedStats?.length) {
    return data;
  }

  // Ensure we don't filter out columns that aren't data, but are things like
  // tooltips or other content.
  let nonDataColumns = [];
  if (data?.length) {
    nonDataColumns = data[0].reduce((acc, row, rowIndex) => {
      return row?.role ? [...acc, rowIndex] : acc;
    }, []);
  }
  return data.map(row => {
    return row.filter((_columnValue, columnIndex) => {
      return columnIndex === 0 || selectedStats.includes(columnIndex - 1) || nonDataColumns.includes(columnIndex - 1);
    });
  });
}

/**
 * Returns the optimal height and width for a preview element.
 *
 * @since 1.93.0
 *
 * @param {string|undefined} loadingHeight Preview height.
 * @param {string|undefined} height        Chart height.
 * @param {string|undefined} loadingWidth  Preview width.
 * @param {string|undefined} width         Chart width.
 * @return {Object} The optimal height and width to use in a preview element.
 */
function getLoadingDimensions(loadingHeight, height, loadingWidth, width) {
  const dimensions = {
    height: loadingHeight || height,
    width: loadingWidth || width
  };
  // If a loading height is set but a width is not (or a loading width is set
  // but not a height), change the "unset" value to 100% to avoid visual bugs.
  // See: https://github.com/google/site-kit-wp/pull/2916#discussion_r623866269
  if (dimensions.width && !dimensions.height) {
    dimensions.height = '100%';
  }
  if (dimensions.height && !dimensions.width) {
    dimensions.width = '100%';
  }
  return dimensions;
}

/**
 * Returns a combined chart events object.
 *
 * @since 1.93.0
 *
 * @param {Array.<Object>|undefined} chartEvents Event names and its callbacks.
 * @param {Function|undefined}       onReady     Chart event.
 * @param {Function|undefined}       onSelect    Chart event.
 * @return {Object} The object containig all events.
 */
function getCombinedChartEvents(chartEvents, onReady, onSelect) {
  const combinedChartEvents = [...(chartEvents || [])];
  if (onReady) {
    combinedChartEvents.push({
      eventName: 'ready',
      callback: onReady
    });
  }
  if (onSelect) {
    combinedChartEvents.push({
      eventName: 'select',
      callback: onSelect
    });
  }
  return combinedChartEvents;
}

/**
 * Returns a chart configuration object.
 *
 * @since 1.93.0
 * @since 1.119.0 Added `breakpoint` parameter.
 * @since 1.160.0 Refactored `gatheringData`, `chartType`, `startDate`, `endDate`, and `breakpoint` to be named parameters.
 *
 * @param {Object}  options                     Chart options to extend.
 * @param {Object}  configuration               Configuration for the extended chart options.
 * @param {boolean} configuration.gatheringData If chart is in gathering info state.
 * @param {string}  configuration.chartType     Chart types: PieChart, LineChart.
 * @param {string}  configuration.startDate     Start date for a user data range.
 * @param {string}  configuration.endDate       End date for a user data range.
 * @param {string}  configuration.breakpoint    Current breakpoint.
 * @return {Object} Chart options object.
 */
function getChartOptions(options, {
  gatheringData,
  chartType,
  startDate,
  endDate,
  breakpoint
}) {
  const chartOptions = (0,lodash__WEBPACK_IMPORTED_MODULE_0__.cloneDeep)(options);
  if (gatheringData && chartType === 'LineChart') {
    if (!options?.vAxis?.viewWindow?.min) {
      (0,lodash__WEBPACK_IMPORTED_MODULE_0__.set)(chartOptions, 'vAxis.viewWindow.min', 0);
    }
    if (!options?.vAxis?.viewWindow?.max) {
      (0,lodash__WEBPACK_IMPORTED_MODULE_0__.set)(chartOptions, 'vAxis.viewWindow.max', 100);
    }
    if (!options?.hAxis?.viewWindow?.min) {
      (0,lodash__WEBPACK_IMPORTED_MODULE_0__.set)(chartOptions, 'hAxis.viewWindow.min', (0,_js_util__WEBPACK_IMPORTED_MODULE_2__.stringToDate)(startDate));
      delete chartOptions.hAxis.ticks;
    }
    if (!options?.hAxis?.viewWindow?.max) {
      (0,lodash__WEBPACK_IMPORTED_MODULE_0__.set)(chartOptions, 'hAxis.viewWindow.max', (0,_js_util__WEBPACK_IMPORTED_MODULE_2__.stringToDate)(endDate));
      delete chartOptions.hAxis.ticks;
    }
  }
  if (chartType === 'LineChart') {
    if (!options?.hAxis?.maxTextLines) {
      (0,lodash__WEBPACK_IMPORTED_MODULE_0__.set)(chartOptions, 'hAxis.maxTextLines', 1);
    }
    if (!options?.hAxis?.minTextSpacing) {
      const minTextSpacing = breakpoint === _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_1__.BREAKPOINT_SMALL ? 50 : 100;
      (0,lodash__WEBPACK_IMPORTED_MODULE_0__.set)(chartOptions, 'hAxis.minTextSpacing', minTextSpacing);
    }
    // eslint-disable-next-line sitekit/acronym-case
    if (options?.tooltip?.isHtml === undefined) {
      (0,lodash__WEBPACK_IMPORTED_MODULE_0__.set)(chartOptions, 'tooltip.isHtml', true);
      (0,lodash__WEBPACK_IMPORTED_MODULE_0__.set)(chartOptions, 'tooltip.trigger', 'both');
    }
  }
  (0,lodash__WEBPACK_IMPORTED_MODULE_0__.merge)(chartOptions, {
    hAxis: {
      textStyle: {
        fontSize: 10,
        color: '#5f6561'
      }
    },
    vAxis: {
      textStyle: {
        color: '#5f6561',
        fontSize: 10
      }
    },
    legend: {
      textStyle: {
        color: '#131418',
        fontSize: 12
      }
    }
  });
  return chartOptions;
}

/**
 * Returns the Google Charts currency pattern for a given currency code and locale.
 *
 * @since 1.118.0
 *
 * @param {string} currencyCode ISO 4217 currency code.
 * @param {string} locale       Locale to use for formatting.
 * @return {string} The currency pattern.
 */
function getCurrencyPattern(currencyCode, locale = (0,_js_util__WEBPACK_IMPORTED_MODULE_2__.getLocale)()) {
  const formatter = Intl.NumberFormat(locale, {
    style: 'currency',
    currency: currencyCode
  });
  const parts = formatter.formatToParts(1000000);
  return parts.reduce((pattern, part) => {
    const {
      value
    } = part;
    switch (part.type) {
      case 'group':
        // The group and decimal separators will be replaced with the
        // locale-specific versions by the chart.
        // See: https://groups.google.com/g/google-visualization-api/c/hBF9daxe8qY/m/_aPk3EfQLgAJ
        return pattern + ',';
      case 'decimal':
        return pattern + '.';
      case 'currency':
        return pattern + value;
      case 'literal':
        const sanitizedValue = /^\s*$/.test(value) ? value : '';
        return pattern + sanitizedValue;
      case 'integer':
        const integerPattern = value.replace(/\d/g, '#');
        const isLastIntegerGroup = (0,lodash__WEBPACK_IMPORTED_MODULE_0__.findLast)(parts, ({
          type
        }) => 'integer' === type) === part;
        return pattern + (isLastIntegerGroup ? integerPattern.replace(/#$/, '0') : integerPattern);
      case 'fraction':
        return pattern + value.replace(/\d/g, '0');
      default:
        return pattern;
    }
  }, '');
}

/***/ }),

/***/ "./js/components/GoogleChartErrorHandler/index.js":
/*!********************************************************!*\
  !*** ./js/components/GoogleChartErrorHandler/index.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var clipboard_copy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! clipboard-copy */ "../node_modules/clipboard-copy/index.js");
/* harmony import */ var clipboard_copy__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(clipboard_copy__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_components_notifications_CTA__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/notifications/CTA */ "./js/components/notifications/CTA.js");
/* harmony import */ var _js_components_GenericErrorHandlerActions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/components/GenericErrorHandlerActions */ "./js/components/GenericErrorHandlerActions.js");
/* harmony import */ var _js_components_Root_ViewContextContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/Root/ViewContextContext */ "./js/components/Root/ViewContextContext.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_components_Typography_P__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/Typography/P */ "./js/components/Typography/P.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * GoogleChartErrorHandler component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */






class GoogleChartErrorHandler extends _wordpress_element__WEBPACK_IMPORTED_MODULE_8__.Component {
  constructor(props) {
    super(props);
    this.state = {
      error: null,
      info: null
    };
    this.onErrorClick = this.onErrorClick.bind(this);
  }
  componentDidCatch(error, info) {
    __webpack_require__.g.console.error('Google Charts error:', error, info);
    this.setState({
      error,
      info
    });
    (0,_js_util__WEBPACK_IMPORTED_MODULE_5__.trackEvent)('google_chart_error', `handle_${this.context || 'unknown'}_error`,
    // label has a max-length of 500 bytes.
    `${error?.message}\n${info?.componentStack}`.slice(0, 500));
  }
  onErrorClick() {
    const {
      error,
      info
    } = this.state;

    // Copy message with wrapping backticks for code block formatting on wp.org.
    clipboard_copy__WEBPACK_IMPORTED_MODULE_0___default()(`\`${error?.message}\n${info?.componentStack}\``);
  }
  render() {
    const {
      children
    } = this.props;
    const {
      error,
      info
    } = this.state;

    // If there is no caught error, render the children components normally.
    if (!error) {
      return children;
    }
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", {
      className: "googlesitekit-googlechart-error-handler",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_js_components_notifications_CTA__WEBPACK_IMPORTED_MODULE_2__["default"], {
        description: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.Fragment, {
          children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_6__["default"], {
            children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('An error prevented this Google chart from being displayed properly. Report the exact contents of the error on the support forum to find out what caused it.', 'google-site-kit')
          }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_js_components_GenericErrorHandlerActions__WEBPACK_IMPORTED_MODULE_3__["default"], {
            message: error.message,
            componentStack: info.componentStack
          })]
        }),
        onErrorClick: this.onErrorClick,
        onClick: this.onErrorClick,
        title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Error in Google Chart', 'google-site-kit'),
        error: true
      })
    });
  }
}
GoogleChartErrorHandler.contextType = _js_components_Root_ViewContextContext__WEBPACK_IMPORTED_MODULE_4__["default"];
GoogleChartErrorHandler.propTypes = {
  /** @ignore */
  children: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().node).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (GoogleChartErrorHandler);

/***/ }),

/***/ "./js/components/IconWrapper.js":
/*!**************************************!*\
  !*** ./js/components/IconWrapper.js ***!
  \**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ IconWrapper)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * IconWrapper component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


function IconWrapper({
  children,
  marginLeft,
  marginRight
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
    className: "googlesitekit-icon-wrapper",
    style: {
      marginLeft,
      marginRight
    },
    children: children
  });
}
IconWrapper.propTypes = {
  children: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().node).isRequired,
  marginLeft: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().number),
  marginRight: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().number)
};

/***/ }),

/***/ "./js/components/InViewProvider/InViewContext.js":
/*!*******************************************************!*\
  !*** ./js/components/InViewProvider/InViewContext.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/**
 * InView context for React components.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */

const InViewContext = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createContext)(false);
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (InViewContext);

/***/ }),

/***/ "./js/components/InViewProvider/index.js":
/*!***********************************************!*\
  !*** ./js/components/InViewProvider/index.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Consumer: () => (/* binding */ Consumer),
/* harmony export */   Provider: () => (/* binding */ Provider),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _InViewContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./InViewContext */ "./js/components/InViewProvider/InViewContext.js");
/**
 * In-view Provider component.
 *
 * Site Kit by Google, Copyright 2020 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */

const {
  Consumer,
  Provider
} = _InViewContext__WEBPACK_IMPORTED_MODULE_0__["default"];
const InViewProvider = Provider;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (InViewProvider);

/***/ }),

/***/ "./js/components/InfoTooltip.js":
/*!**************************************!*\
  !*** ./js/components/InfoTooltip.js ***!
  \**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ InfoTooltip)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _svg_icons_info_green_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/svg/icons/info-green.svg */ "./svg/icons/info-green.svg");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * InfoTooltip component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Internal dependencies
 */



function InfoTooltip({
  onOpen,
  title,
  tooltipClassName
}) {
  if (!title) {
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.Tooltip, {
    className: "googlesitekit-info-tooltip",
    tooltipClassName: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-info-tooltip__content', tooltipClassName),
    title: title,
    placement: "top",
    enterTouchDelay: 0,
    leaveTouchDelay: 5000,
    onOpen: onOpen,
    interactive: true,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", {
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_svg_icons_info_green_svg__WEBPACK_IMPORTED_MODULE_2__["default"], {
        width: "16",
        height: "16"
      })
    })
  });
}
InfoTooltip.propTypes = {
  onOpen: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func),
  title: prop_types__WEBPACK_IMPORTED_MODULE_4___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_4___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_4___default().element)]),
  tooltipClassName: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string)
};

/***/ }),

/***/ "./js/components/JoyrideTooltip.js":
/*!*****************************************!*\
  !*** ./js/components/JoyrideTooltip.js ***!
  \*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ JoyrideTooltip)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var react_joyride__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-joyride */ "../node_modules/react-joyride/dist/index.mjs");
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useInterval.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _TourTooltip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TourTooltip */ "./js/components/TourTooltip.js");
/* harmony import */ var _Portal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Portal */ "./js/components/Portal.js");
/* harmony import */ var _TourTooltips__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./TourTooltips */ "./js/components/TourTooltips.js");
/* harmony import */ var _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/hooks/useBreakpoint */ "./js/hooks/useBreakpoint.ts");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * JoyRideTooltip component.
 *
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */




/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */





function JoyrideTooltip(props) {
  const {
    title,
    content,
    dismissLabel,
    disableOverlay = true,
    target,
    cta = false,
    className,
    styles = {},
    slug = '',
    placement = 'auto',
    onDismiss = () => {},
    onView = () => {},
    onTourStart = () => {},
    onTourEnd = () => {}
  } = props;
  function checkIfTargetExists() {
    return !!__webpack_require__.g.document.querySelector(target);
  }
  const [targetExists, setTargetExists] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useState)(checkIfTargetExists);
  const breakpoint = (0,_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_3__.useBreakpoint)();
  const isMobileTablet = breakpoint === _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_3__.BREAKPOINT_SMALL || breakpoint === _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_3__.BREAKPOINT_TABLET;
  const [shouldRun, setShouldRun] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useState)(true);
  const previousIsMobileTabletRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useRef)(isMobileTablet);
  (0,react_use__WEBPACK_IMPORTED_MODULE_6__["default"])(() => {
    if (checkIfTargetExists()) {
      setTargetExists(true);
    }
  },
  // An delay of null will stop the interval.
  targetExists ? null : 250);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useEffect)(() => {
    // eslint-disable-next-line sitekit/function-declaration-consistency
    let disconnect = () => {};
    if (typeof __webpack_require__.g.ResizeObserver === 'function') {
      const targetElement = __webpack_require__.g.document.querySelector(target);
      if (targetElement) {
        const resizeObserver = new ResizeObserver(() => {
          // Dispatch a window resize event to trigger the tooltip to reposition.
          __webpack_require__.g.dispatchEvent(new Event('resize'));
        });
        resizeObserver.observe(targetElement);
        disconnect = () => resizeObserver.disconnect();
      }
    }
    return disconnect;
  }, [target, targetExists]);

  // Reset the component between mobile and desktop layouts they use different
  // targets which requires the tooltip to be re-rendered to display correctly.
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useEffect)(() => {
    let timeoutID;
    if (previousIsMobileTabletRef.current !== isMobileTablet) {
      setShouldRun(false);
      timeoutID = setTimeout(() => {
        setShouldRun(true);
      }, 50);
      previousIsMobileTabletRef.current = isMobileTablet;
    }
    return () => {
      if (timeoutID) {
        clearTimeout(timeoutID);
      }
    };
  }, [isMobileTablet]);

  // Joyride expects the step's target to be in the DOM immediately
  // so we need to wait for it in some cases, e.g. loading data.
  if (!targetExists) {
    return null;
  }
  const steps = [{
    title,
    target,
    content,
    disableBeacon: true,
    isFixed: true,
    placement,
    cta,
    className
  }];

  // Provides button content as well as aria-label & title attribute values.
  const joyrideLocale = {
    close: dismissLabel,
    last: dismissLabel
  };
  function callback({
    type
  }) {
    switch (type) {
      case react_joyride__WEBPACK_IMPORTED_MODULE_7__.EVENTS.TOUR_START:
        onTourStart();
        __webpack_require__.g.document.body.classList.add('googlesitekit-showing-tooltip');
        break;
      case react_joyride__WEBPACK_IMPORTED_MODULE_7__.EVENTS.TOUR_END:
        onTourEnd();
        __webpack_require__.g.document.body.classList.remove('googlesitekit-showing-tooltip');
        break;
      case react_joyride__WEBPACK_IMPORTED_MODULE_7__.EVENTS.STEP_AFTER:
        // This is not strictly necessary as the tooltip will hide without it,
        // but this allows the consumer of the component to clean up
        // post-dismiss.
        onDismiss();
        break;
      case react_joyride__WEBPACK_IMPORTED_MODULE_7__.EVENTS.TOOLTIP:
        onView();
        break;
    }
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_Portal__WEBPACK_IMPORTED_MODULE_1__["default"], {
    slug: slug,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(react_joyride__WEBPACK_IMPORTED_MODULE_7__["default"], {
      callback: callback,
      disableOverlay: disableOverlay,
      spotlightPadding: 0,
      floaterProps: _TourTooltips__WEBPACK_IMPORTED_MODULE_2__.floaterProps,
      locale: joyrideLocale,
      steps: steps,
      styles: {
        ..._TourTooltips__WEBPACK_IMPORTED_MODULE_2__.joyrideStyles,
        ...styles,
        options: {
          ..._TourTooltips__WEBPACK_IMPORTED_MODULE_2__.joyrideStyles.options,
          ...styles?.options
        },
        spotlight: {
          ..._TourTooltips__WEBPACK_IMPORTED_MODULE_2__.joyrideStyles.spotlight,
          ...styles?.spotlight
        }
      },
      tooltipComponent: _TourTooltip__WEBPACK_IMPORTED_MODULE_0__["default"],
      run: shouldRun,
      disableScrolling: true
    })
  });
}
JoyrideTooltip.propTypes = {
  title: prop_types__WEBPACK_IMPORTED_MODULE_8__.PropTypes.node,
  content: prop_types__WEBPACK_IMPORTED_MODULE_8__.PropTypes.string,
  disableOverlay: prop_types__WEBPACK_IMPORTED_MODULE_8__.PropTypes.bool,
  dismissLabel: prop_types__WEBPACK_IMPORTED_MODULE_8__.PropTypes.string,
  target: prop_types__WEBPACK_IMPORTED_MODULE_8__.PropTypes.string.isRequired,
  onDismiss: prop_types__WEBPACK_IMPORTED_MODULE_8__.PropTypes.func,
  onShow: prop_types__WEBPACK_IMPORTED_MODULE_8__.PropTypes.func,
  className: prop_types__WEBPACK_IMPORTED_MODULE_8__.PropTypes.string,
  styles: prop_types__WEBPACK_IMPORTED_MODULE_8__.PropTypes.object,
  slug: prop_types__WEBPACK_IMPORTED_MODULE_8__.PropTypes.string,
  placement: prop_types__WEBPACK_IMPORTED_MODULE_8__.PropTypes.string,
  onView: prop_types__WEBPACK_IMPORTED_MODULE_8__.PropTypes.func
};

/***/ }),

/***/ "./js/components/KeyMetrics/ChangeMetricsLink.js":
/*!*******************************************************!*\
  !*** ./js/components/KeyMetrics/ChangeMetricsLink.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ ChangeMetricsLink)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constants */ "./js/components/KeyMetrics/constants.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _svg_icons_pencil_alt_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/svg/icons/pencil-alt.svg */ "./svg/icons/pencil-alt.svg");
/* harmony import */ var _SetupCompletedSurveyTrigger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./SetupCompletedSurveyTrigger */ "./js/components/KeyMetrics/SetupCompletedSurveyTrigger.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _hooks_useChangeMetricsFeatureTourEffect__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./hooks/useChangeMetricsFeatureTourEffect */ "./js/components/KeyMetrics/hooks/useChangeMetricsFeatureTourEffect.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Key Metrics ChangeMetricsLink component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */











function ChangeMetricsLink() {
  const keyMetrics = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).getKeyMetrics());
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_9__["default"])();
  const {
    setValue
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_UI);
  const openMetricsSelectionPanel = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_12__.useCallback)(() => {
    setValue(_constants__WEBPACK_IMPORTED_MODULE_4__.KEY_METRICS_SELECTION_PANEL_OPENED_KEY, true);
    (0,_js_util__WEBPACK_IMPORTED_MODULE_8__.trackEvent)(`${viewContext}_kmw`, 'change_metrics');
  }, [setValue, viewContext]);
  const renderChangeMetricLink = Array.isArray(keyMetrics) && keyMetrics?.length > 0;
  (0,_hooks_useChangeMetricsFeatureTourEffect__WEBPACK_IMPORTED_MODULE_10__.useChangeMetricsFeatureTourEffect)({
    renderChangeMetricLink
  });
  if (!renderChangeMetricLink) {
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_12__.Fragment, {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_5__["default"], {
      className: "googlesitekit-widget-area__cta-link googlesitekit-km-change-metrics-cta",
      onClick: openMetricsSelectionPanel,
      leadingIcon: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_svg_icons_pencil_alt_svg__WEBPACK_IMPORTED_MODULE_6__["default"], {
        width: 22,
        height: 22
      }),
      secondary: true,
      linkButton: true,
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Change metrics', 'google-site-kit')
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_SetupCompletedSurveyTrigger__WEBPACK_IMPORTED_MODULE_7__["default"], {})]
  });
}

/***/ }),

/***/ "./js/components/KeyMetrics/ChipTabGroup/Chip.js":
/*!*******************************************************!*\
  !*** ./js/components/KeyMetrics/ChipTabGroup/Chip.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Chip)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/KeyMetrics/constants */ "./js/components/KeyMetrics/constants.js");
/* harmony import */ var _svg_icons_check_2_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/svg/icons/check-2.svg */ "./svg/icons/check-2.svg");
/* harmony import */ var _svg_icons_star_fill_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/svg/icons/star-fill.svg */ "./svg/icons/star-fill.svg");
/* harmony import */ var _js_components_Null__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/Null */ "./js/components/Null.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Chip component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Internal dependencies
 */






const icons = {
  [_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_2__.KEY_METRICS_GROUP_CURRENT.SLUG]: _svg_icons_check_2_svg__WEBPACK_IMPORTED_MODULE_3__["default"],
  [_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_2__.KEY_METRICS_GROUP_SUGGESTED.SLUG]: _svg_icons_star_fill_svg__WEBPACK_IMPORTED_MODULE_4__["default"]
};
function Chip({
  slug,
  label,
  isActive,
  onClick,
  hasNewBadge = false,
  selectedCount = 0
}) {
  const Icon = icons[slug] || _js_components_Null__WEBPACK_IMPORTED_MODULE_5__["default"];
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.Button, {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-chip-tab-group__chip-item', {
      'googlesitekit-chip-tab-group__chip-item--active': isActive
    }),
    icon: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(Icon, {
      width: 12,
      height: 12,
      className: `googlesitekit-chip-tab-group__chip-item-svg googlesitekit-chip-tab-group__chip-item-svg__${slug}`
    }),
    trailingIcon: selectedCount > 0 ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("span", {
      className: "googlesitekit-chip-tab-group__chip-item-count",
      children: ["(", selectedCount, ")"]
    }) : null,
    onClick: () => onClick(slug),
    children: [label, hasNewBadge && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
      className: "googlesitekit-chip-tab-group__chip-item-new-dot"
    })]
  });
}
Chip.propTypes = {
  slug: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string).isRequired,
  label: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string).isRequired,
  isActive: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().bool),
  hasNewBadge: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().bool),
  selectedCount: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().number),
  onClick: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().func).isRequired
};

/***/ }),

/***/ "./js/components/KeyMetrics/ChipTabGroup/TabContent.js":
/*!*************************************************************!*\
  !*** ./js/components/KeyMetrics/ChipTabGroup/TabContent.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ TabContent)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_components_KeyMetrics_MetricsSelectionPanel_MetricItem__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/KeyMetrics/MetricsSelectionPanel/MetricItem */ "./js/components/KeyMetrics/MetricsSelectionPanel/MetricItem.js");
/* harmony import */ var _svg_graphics_key_metrics_no_selected_items_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/svg/graphics/key-metrics-no-selected-items.svg */ "./svg/graphics/key-metrics-no-selected-items.svg");
/* harmony import */ var _js_components_Typography_P__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/components/Typography/P */ "./js/components/Typography/P.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * TabContent component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */




function TabContent({
  activeMetricItems,
  newlyDetectedMetrics,
  savedItemSlugs
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", {
    className: "googlesitekit-chip-tab-group__tab-item",
    children: [Object.keys(activeMetricItems).map(slug => {
      const metricGroup = activeMetricItems[slug].group;
      const isNewlyDetected = newlyDetectedMetrics?.[metricGroup]?.includes(slug);
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_js_components_KeyMetrics_MetricsSelectionPanel_MetricItem__WEBPACK_IMPORTED_MODULE_1__["default"], {
        slug: slug,
        savedItemSlugs: savedItemSlugs,
        isNewlyDetected: isNewlyDetected,
        ...activeMetricItems[slug]
      }, slug);
    }), !Object.keys(activeMetricItems).length && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", {
      className: "googlesitekit-chip-tab-group__graphic",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_svg_graphics_key_metrics_no_selected_items_svg__WEBPACK_IMPORTED_MODULE_2__["default"], {
        height: 250
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_3__["default"], {
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No metrics were selected yet', 'google-site-kit')
      })]
    })]
  });
}
TabContent.propTypes = {
  activeMetricItems: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().object).isRequired,
  newlyDetectedMetrics: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().object).isRequired,
  savedItemSlugs: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().array)
};

/***/ }),

/***/ "./js/components/KeyMetrics/ChipTabGroup/TabItems.js":
/*!***********************************************************!*\
  !*** ./js/components/KeyMetrics/ChipTabGroup/TabItems.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ TabItems)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _Chip__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Chip */ "./js/components/KeyMetrics/ChipTabGroup/Chip.js");
/* harmony import */ var _svg_icons_check_2_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/svg/icons/check-2.svg */ "./svg/icons/check-2.svg");
/* harmony import */ var _svg_icons_star_fill_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/svg/icons/star-fill.svg */ "./svg/icons/star-fill.svg");
/* harmony import */ var _js_components_Null__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/Null */ "./js/components/Null.js");
/* harmony import */ var _js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/KeyMetrics/constants */ "./js/components/KeyMetrics/constants.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * TabItems component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */







const icons = {
  [_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_CURRENT.SLUG]: _svg_icons_check_2_svg__WEBPACK_IMPORTED_MODULE_2__["default"],
  [_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_SUGGESTED.SLUG]: _svg_icons_star_fill_svg__WEBPACK_IMPORTED_MODULE_3__["default"]
};
function TabItems({
  containerRef,
  isMobileBreakpoint,
  chipItemRows,
  allGroups,
  isActive,
  onChipChange,
  selectedCounts,
  newlyDetectedMetrics,
  activeGroupIndex
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
    className: "googlesitekit-chip-tab-group__tab-items",
    ref: containerRef,
    children: [!isMobileBreakpoint && chipItemRows.map(row => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
      className: "googlesitekit-chip-tab-group__tab-items-row",
      children: row.map(group => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Chip__WEBPACK_IMPORTED_MODULE_1__["default"], {
        slug: group.SLUG,
        label: group.LABEL,
        hasNewBadge: !!newlyDetectedMetrics?.[group.SLUG],
        isActive: group.SLUG === isActive,
        onClick: onChipChange,
        selectedCount: selectedCounts[group.SLUG]
      }, group.SLUG))
    }, `row-${row[0].SLUG}`)), isMobileBreakpoint && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_0__.TabBar, {
      activeIndex: activeGroupIndex,
      handleActiveIndexUpdate: index => onChipChange(null, index),
      children: allGroups.map((group, index) => {
        const Icon = icons[group.SLUG] || _js_components_Null__WEBPACK_IMPORTED_MODULE_4__["default"];
        return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_0__.Tab, {
          "aria-label": group.LABEL,
          children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(Icon, {
            width: 12,
            height: 12,
            className: `googlesitekit-chip-tab-group__chip-item-svg googlesitekit-chip-tab-group__tab-item-mobile-svg googlesitekit-chip-tab-group__chip-item-svg__${group.SLUG}`
          }), group.LABEL, selectedCounts[group.SLUG] > 0 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("span", {
            className: "googlesitekit-chip-tab-group__chip-item-count",
            children: ["(", selectedCounts[group.SLUG], ")"]
          }), !!newlyDetectedMetrics?.[group.SLUG] && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("span", {
            className: "googlesitekit-chip-tab-group__chip-item-new-dot"
          })]
        }, index);
      })
    })]
  });
}
TabItems.propTypes = {
  containerRef: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().object),
  isMobileBreakpoint: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().bool),
  chipItemRows: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().array).isRequired,
  allGroups: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().array).isRequired,
  isActive: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string).isRequired,
  onChipChange: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().func).isRequired,
  selectedCounts: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().object).isRequired,
  newlyDetectedMetrics: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().object).isRequired,
  activeGroupIndex: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().number).isRequired
};

/***/ }),

/***/ "./js/components/KeyMetrics/ChipTabGroup/index.js":
/*!********************************************************!*\
  !*** ./js/components/KeyMetrics/ChipTabGroup/index.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ ChipTabGroup)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @wordpress/compose */ "../node_modules/@wordpress/compose/build-module/hooks/use-previous/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/KeyMetrics/constants */ "./js/components/KeyMetrics/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/hooks/useBreakpoint */ "./js/hooks/useBreakpoint.ts");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/* harmony import */ var _js_components_KeyMetrics_hooks_useCurrentlyActiveEvents__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/components/KeyMetrics/hooks/useCurrentlyActiveEvents */ "./js/components/KeyMetrics/hooks/useCurrentlyActiveEvents.js");
/* harmony import */ var _js_components_KeyMetrics_hooks_useKeyMetricsGroups__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/components/KeyMetrics/hooks/useKeyMetricsGroups */ "./js/components/KeyMetrics/hooks/useKeyMetricsGroups.js");
/* harmony import */ var _js_components_KeyMetrics_hooks_useFilteredKeyMetrics__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/js/components/KeyMetrics/hooks/useFilteredKeyMetrics */ "./js/components/KeyMetrics/hooks/useFilteredKeyMetrics.js");
/* harmony import */ var _js_components_KeyMetrics_hooks_useOverflowingTabs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/js/components/KeyMetrics/hooks/useOverflowingTabs */ "./js/components/KeyMetrics/hooks/useOverflowingTabs.js");
/* harmony import */ var _js_components_KeyMetrics_hooks_useNewBadgeEvents__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/js/components/KeyMetrics/hooks/useNewBadgeEvents */ "./js/components/KeyMetrics/hooks/useNewBadgeEvents.js");
/* harmony import */ var _TabItems__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./TabItems */ "./js/components/KeyMetrics/ChipTabGroup/TabItems.js");
/* harmony import */ var _TabContent__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./TabContent */ "./js/components/KeyMetrics/ChipTabGroup/TabContent.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * ChipTabGroup component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


















const emptyArray = Object.freeze([]);
function ChipTabGroup({
  allMetricItems,
  savedItemSlugs
}) {
  const containerRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useRef)();
  const [isActive, setIsActive] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useState)(_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_1__.KEY_METRICS_GROUP_CURRENT.SLUG);
  // Used for mobile chip tabs, which leverages the TabBar component for seemless horizontal scroll
  // but it accepts a numerical index for the active tab.
  const [activeGroupIndex, setActiveGroupIndex] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useState)(0);
  const breakpoint = (0,_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_8__.useBreakpoint)();
  const isMobileBreakpoint = breakpoint === _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_8__.BREAKPOINT_SMALL;
  const selectedMetrics = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_9__["default"])(_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_1__.KEY_METRICS_SELECTION_FORM, _js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_1__.KEY_METRICS_SELECTED);
  const effectiveSelection = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_9__["default"])(_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_1__.KEY_METRICS_SELECTION_FORM, _js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_1__.EFFECTIVE_SELECTION) || emptyArray;
  const unstagedSelection = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_9__["default"])(_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_1__.KEY_METRICS_SELECTION_FORM, _js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_1__.UNSTAGED_SELECTION) || emptyArray;
  const isUserInputCompleted = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).isUserInputCompleted());
  const currentlyActiveEvents = (0,_js_components_KeyMetrics_hooks_useCurrentlyActiveEvents__WEBPACK_IMPORTED_MODULE_10__["default"])();
  const isGA4Connected = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.CORE_MODULES).isModuleConnected(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_4__.MODULE_SLUG_ANALYTICS_4));
  const detectedEvents = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    if (!isGA4Connected) {
      return [];
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getDetectedEvents();
  });
  const answerBasedMetrics = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).getAnswerBasedMetrics(null, [...(currentlyActiveEvents || []), ...(detectedEvents || [])]));
  const {
    keyMetricsGroups,
    dynamicGroups
  } = (0,_js_components_KeyMetrics_hooks_useKeyMetricsGroups__WEBPACK_IMPORTED_MODULE_11__["default"])({
    detectedEvents,
    currentlyActiveEvents,
    isUserInputCompleted,
    answerBasedMetrics
  });
  const allGroups = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useMemo)(() => [...dynamicGroups, ...keyMetricsGroups], [dynamicGroups, keyMetricsGroups]);
  const newBadgeEvents = (0,_js_components_KeyMetrics_hooks_useNewBadgeEvents__WEBPACK_IMPORTED_MODULE_14__["default"])();
  const conversionReportingEventWidgets = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    if (!isGA4Connected) {
      return [];
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getKeyMetricsConversionEventWidgets();
  });
  const {
    selectedCounts,
    activeMetricItems,
    newlyDetectedMetrics
  } = (0,_js_components_KeyMetrics_hooks_useFilteredKeyMetrics__WEBPACK_IMPORTED_MODULE_12__["default"])({
    allMetricItems,
    isActive,
    effectiveSelection,
    answerBasedMetrics,
    selectedMetrics,
    newBadgeEvents,
    conversionReportingEventWidgets
  });
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_FORMS);
  const resetUnstagedSelection = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useCallback)(() => {
    setValues(_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_1__.KEY_METRICS_SELECTION_FORM, {
      [_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_1__.KEY_METRICS_SELECTED]: selectedMetrics,
      [_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_1__.EFFECTIVE_SELECTION]: [...effectiveSelection, ...unstagedSelection],
      [_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_1__.UNSTAGED_SELECTION]: []
    });
  }, [selectedMetrics, effectiveSelection, unstagedSelection, setValues]);
  const onChipChange = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useCallback)((slug, index) => {
    if (!slug) {
      // Set active group for mobile tabs.
      const activeGroup = allGroups[index];
      setActiveGroupIndex(index);
      setIsActive(activeGroup.SLUG);
    } else {
      setIsActive(slug);
    }
    if (unstagedSelection.length) {
      resetUnstagedSelection();
    }
  }, [allGroups, unstagedSelection, setIsActive, resetUnstagedSelection]);
  const isSelectionPanelOpen = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_UI).getValue(_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_1__.KEY_METRICS_SELECTION_PANEL_OPENED_KEY));
  const isSelectionPanelOpenPrevious = (0,_wordpress_compose__WEBPACK_IMPORTED_MODULE_19__["default"])(isSelectionPanelOpen);
  const newlyDetectedMetricsKeys = Object.keys(newlyDetectedMetrics);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useEffect)(() => {
    // Ensure that current selection group is always active when selection panel re-opens.
    if (!isSelectionPanelOpenPrevious && isSelectionPanelOpen) {
      setIsActive(_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_1__.KEY_METRICS_GROUP_CURRENT.SLUG);
      setActiveGroupIndex(0);
      if (newlyDetectedMetricsKeys.length && isMobileBreakpoint) {
        const firstNewlyDetectedGroup = allGroups.find(group => group.SLUG === newlyDetectedMetricsKeys[0]);
        setActiveGroupIndex(allGroups.indexOf(firstNewlyDetectedGroup));
        setIsActive(firstNewlyDetectedGroup.SLUG);
      } else {
        setActiveGroupIndex(0);
        setIsActive(_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_1__.KEY_METRICS_GROUP_CURRENT.SLUG);
      }
    }
    if (isSelectionPanelOpenPrevious && !isSelectionPanelOpen) {
      // Reset the unstaged selection when selection panel is closed.
      resetUnstagedSelection();
    }
  }, [isSelectionPanelOpen, isSelectionPanelOpenPrevious, unstagedSelection, allGroups, isMobileBreakpoint, newlyDetectedMetricsKeys, resetUnstagedSelection]);
  (0,_js_components_KeyMetrics_hooks_useOverflowingTabs__WEBPACK_IMPORTED_MODULE_13__["default"])({
    containerRef,
    isMobileBreakpoint,
    isSelectionPanelOpen,
    isSelectionPanelOpenPrevious
  });
  const chipItemRows = [[...dynamicGroups, ...keyMetricsGroups.slice(0, 2)], [...keyMetricsGroups.slice(2)]];
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)("div", {
    className: "googlesitekit-chip-tab-group",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_TabItems__WEBPACK_IMPORTED_MODULE_15__["default"], {
      containerRef: containerRef,
      isMobileBreakpoint: isMobileBreakpoint,
      chipItemRows: chipItemRows,
      allGroups: allGroups,
      isActive: isActive,
      onChipChange: onChipChange,
      selectedCounts: selectedCounts,
      newlyDetectedMetrics: newlyDetectedMetrics,
      activeGroupIndex: activeGroupIndex
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_TabContent__WEBPACK_IMPORTED_MODULE_16__["default"], {
      activeMetricItems: activeMetricItems,
      newlyDetectedMetrics: newlyDetectedMetrics,
      savedItemSlugs: savedItemSlugs
    })]
  });
}

/***/ }),

/***/ "./js/components/KeyMetrics/ConnectModuleCTATile.js":
/*!**********************************************************!*\
  !*** ./js/components/KeyMetrics/ConnectModuleCTATile.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ ConnectModuleCTATile)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_13__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_widgets_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/widgets/datastore/constants */ "./js/googlesitekit/widgets/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/widgets/default-areas */ "./js/googlesitekit/widgets/default-areas.js");
/* harmony import */ var _js_hooks_useActivateModuleCallback__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/hooks/useActivateModuleCallback */ "./js/hooks/useActivateModuleCallback.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _GhostCardGreenSVG__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./GhostCardGreenSVG */ "./js/components/KeyMetrics/GhostCardGreenSVG.js");
/* harmony import */ var _GhostCardRedSVG__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./GhostCardRedSVG */ "./js/components/KeyMetrics/GhostCardRedSVG.js");
/* harmony import */ var _MetricTileHeader__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./MetricTileHeader */ "./js/components/KeyMetrics/MetricTileHeader.js");
/* harmony import */ var _key_metrics_widgets__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./key-metrics-widgets */ "./js/components/KeyMetrics/key-metrics-widgets.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * ConnectModuleCTATile component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */











function ConnectModuleCTATile({
  moduleSlug
}) {
  const handleConnectModule = (0,_js_hooks_useActivateModuleCallback__WEBPACK_IMPORTED_MODULE_5__["default"])(moduleSlug);
  const module = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_MODULES).getModule(moduleSlug));
  const Icon = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_MODULES).getModuleIcon(moduleSlug));
  const widgets = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_widgets_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_WIDGETS).getWidgets(_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY) || []);
  const moduleWidgets = widgets.filter(widget => widget.modules.includes(moduleSlug));
  const firstWidget = _key_metrics_widgets__WEBPACK_IMPORTED_MODULE_10__.KEY_METRICS_WIDGETS[moduleWidgets[0]?.slug];

  // If there are more than one metric tiles combined into this metric notice, update
  // the widget to remove the title and change the description copy.
  const combinedMetrics = moduleWidgets.length > 1;
  if (!module) {
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)("div", {
    className: `googlesitekit-widget--connectModuleCTATile googlesitekit-km-widget-tile ${combinedMetrics && ' googlesitekit-km-widget-tile--combined'}`,
    children: [!combinedMetrics && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_MetricTileHeader__WEBPACK_IMPORTED_MODULE_9__["default"], {
      title: firstWidget?.title,
      infoTooltip: firstWidget?.description,
      loading: false
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("div", {
      className: "googlesitekit-km-widget-tile__body",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)("div", {
        className: "googlesitekit-km-connect-module-cta-tile",
        children: [Icon && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("div", {
          className: "googlesitekit-km-connect-module-cta-tile__icon",
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(Icon, {
            width: "32",
            height: "32"
          })
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)("div", {
          className: "googlesitekit-km-connect-module-cta-tile__content",
          children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("p", {
            className: "googlesitekit-km-connect-module-cta-tile__text",
            children: combinedMetrics ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: module name */
            (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('%s is disconnected, some of your metrics can’t be displayed', 'google-site-kit'), module.name) : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: module name */
            (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('%s is disconnected, metric can’t be displayed', 'google-site-kit'), module.name)
          }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_6__["default"], {
            onClick: handleConnectModule,
            secondary: true,
            children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: module name */
            (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Connect %s', 'google-site-kit'), module.name)
          })]
        })]
      })
    }), combinedMetrics && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_12__.Fragment, {
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("div", {
        className: "googlesitekit-km-connect-module-cta-tile__ghost-card",
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_GhostCardGreenSVG__WEBPACK_IMPORTED_MODULE_7__["default"], {})
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("div", {
        className: "googlesitekit-km-connect-module-cta-tile__ghost-card",
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_GhostCardGreenSVG__WEBPACK_IMPORTED_MODULE_7__["default"], {})
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("div", {
        className: "googlesitekit-km-connect-module-cta-tile__ghost-card",
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_GhostCardRedSVG__WEBPACK_IMPORTED_MODULE_8__["default"], {})
      })]
    })]
  });
}
ConnectModuleCTATile.propTypes = {
  moduleSlug: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().string).isRequired
};

/***/ }),

/***/ "./js/components/KeyMetrics/ConversionReportingDashboardSubtleNotification.js":
/*!************************************************************************************!*\
  !*** ./js/components/KeyMetrics/ConversionReportingDashboardSubtleNotification.js ***!
  \************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ ConversionReportingDashboardSubtleNotification)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_components_Notice__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/Notice */ "./js/components/Notice/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * ConversionReportingDashboardSubtleNotification component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


function ConversionReportingDashboardSubtleNotification({
  description,
  ctaLabel,
  handleCTAClick,
  isSaving = false,
  onDismiss,
  dismissCTALabel = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Maybe later', 'google-site-kit')
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_js_components_Notice__WEBPACK_IMPORTED_MODULE_1__["default"], {
    type: "new",
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('New key metrics were added!', 'google-site-kit'),
    description: description,
    dismissButton: {
      label: dismissCTALabel,
      onClick: onDismiss
    },
    ctaButton: {
      label: ctaLabel,
      onClick: handleCTAClick,
      inProgress: isSaving,
      disabled: isSaving
    }
  });
}
ConversionReportingDashboardSubtleNotification.propTypes = {
  description: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node).isRequired,
  ctaLabel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,
  handleCTAClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func).isRequired,
  isSaving: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),
  onDismiss: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func).isRequired,
  dismissCTALabel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string)
};

/***/ }),

/***/ "./js/components/KeyMetrics/GetHelpLink.js":
/*!*************************************************!*\
  !*** ./js/components/KeyMetrics/GetHelpLink.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ GetHelpLink)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * GetHelpLink component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


function GetHelpLink({
  linkURL
}) {
  return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__["default"])(/* translators: %s: get help text. */
  (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Trouble getting access? <HelpLink />', 'google-site-kit'), {
    HelpLink: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_1__["default"], {
      href: linkURL,
      external: true,
      hideExternalIndicator: true,
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Get help', 'google-site-kit')
    })
  });
}
GetHelpLink.propTypes = {
  linkURL: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired
};

/***/ }),

/***/ "./js/components/KeyMetrics/GhostCardGreenSVG.js":
/*!*******************************************************!*\
  !*** ./js/components/KeyMetrics/GhostCardGreenSVG.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ GhostCardGreenSVG)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/PreviewBlock */ "./js/components/PreviewBlock.js");
/* harmony import */ var _js_components_MediaErrorHandler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/MediaErrorHandler */ "./js/components/MediaErrorHandler/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * GhostCardGreenSVG component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



const LazyGhostCardGreenSVG = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.lazy)(() => __webpack_require__.e(/*! import() */ "svg_graphics_ghost-card-green_svg").then(__webpack_require__.bind(__webpack_require__, /*! ../../../svg/graphics/ghost-card-green.svg */ "./svg/graphics/ghost-card-green.svg")));
function GhostCardGreenSVG() {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.Suspense, {
    fallback: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_1__["default"], {
      width: "100%",
      height: "90px"
    }),
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_js_components_MediaErrorHandler__WEBPACK_IMPORTED_MODULE_2__["default"], {
      errorMessage: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Failed to load graphic', 'google-site-kit'),
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(LazyGhostCardGreenSVG, {})
    })
  });
}

/***/ }),

/***/ "./js/components/KeyMetrics/GhostCardRedSVG.js":
/*!*****************************************************!*\
  !*** ./js/components/KeyMetrics/GhostCardRedSVG.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ GhostCardRedSVG)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/PreviewBlock */ "./js/components/PreviewBlock.js");
/* harmony import */ var _js_components_MediaErrorHandler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/MediaErrorHandler */ "./js/components/MediaErrorHandler/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * GhostCardRedSVG component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



const LazyGhostCardRedSVG = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.lazy)(() => __webpack_require__.e(/*! import() */ "svg_graphics_ghost-card-red_svg").then(__webpack_require__.bind(__webpack_require__, /*! ../../../svg/graphics/ghost-card-red.svg */ "./svg/graphics/ghost-card-red.svg")));
function GhostCardRedSVG() {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.Suspense, {
    fallback: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_1__["default"], {
      width: "100%",
      height: "90px"
    }),
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_js_components_MediaErrorHandler__WEBPACK_IMPORTED_MODULE_2__["default"], {
      errorMessage: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Failed to load graphic', 'google-site-kit'),
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(LazyGhostCardRedSVG, {})
    })
  });
}

/***/ }),

/***/ "./js/components/KeyMetrics/InsufficientPermissionsError.js":
/*!******************************************************************!*\
  !*** ./js/components/KeyMetrics/InsufficientPermissionsError.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ InsufficientPermissionsError)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _MetricTileError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./MetricTileError */ "./js/components/KeyMetrics/MetricTileError.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */







function InsufficientPermissionsError(props) {
  const {
    moduleSlug,
    onRetry,
    infoTooltip,
    headerText
  } = props;
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_6__["default"])();
  const helpLink = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_SITE).getErrorTroubleshootingLinkURL({
    code: `${moduleSlug}_insufficient_permissions`
  }));
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.useEffect)(() => {
    (0,_js_util__WEBPACK_IMPORTED_MODULE_5__.trackEventOnce)(`${viewContext}_kmw`, 'insufficient_permissions_error');
  }, [viewContext]);
  const retry = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.useCallback)(() => {
    (0,_js_util__WEBPACK_IMPORTED_MODULE_5__.trackEvent)(`${viewContext}_kmw`, 'insufficient_permissions_error_retry');
    onRetry?.();
  }, [onRetry, viewContext]);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_MetricTileError__WEBPACK_IMPORTED_MODULE_4__["default"], {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Insufficient permissions', 'google-site-kit'),
    headerText: headerText,
    infoTooltip: infoTooltip,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)("div", {
      className: "googlesitekit-report-error-actions",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("span", {
        className: "googlesitekit-error-retry-text",
        children: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_9__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Permissions updated? <a>Retry</a>', 'google-site-kit'), {
          a: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_3__["default"], {
            onClick: retry
          })
        })
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("span", {
        className: "googlesitekit-error-retry-text",
        children: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_9__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You’ll need to contact your administrator. <a>Learn more</a>', 'google-site-kit'), {
          a: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_3__["default"], {
            href: helpLink,
            external: true,
            hideExternalIndicator: true
          })
        })
      })]
    })
  });
}
InsufficientPermissionsError.propTypes = {
  moduleSlug: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().string).isRequired,
  onRetry: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().func).isRequired,
  headerText: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().string),
  infoTooltip: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().string)
};

/***/ }),

/***/ "./js/components/KeyMetrics/KeyMetricsSetupCTAWidget.js":
/*!**************************************************************!*\
  !*** ./js/components/KeyMetrics/KeyMetricsSetupCTAWidget.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_19__);
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useIntersection.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_location_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/location/constants */ "./js/googlesitekit/datastore/location/constants.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./constants */ "./js/components/KeyMetrics/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _js_components_AdminScreenTooltip__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/components/AdminScreenTooltip */ "./js/components/AdminScreenTooltip/index.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _hooks_useDisplayCTAWidget__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./hooks/useDisplayCTAWidget */ "./js/components/KeyMetrics/hooks/useDisplayCTAWidget.js");
/* harmony import */ var _js_components_Banner__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/js/components/Banner */ "./js/components/Banner/index.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _svg_graphics_banner_conversions_setup_cta_svg_url__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/svg/graphics/banner-conversions-setup-cta.svg?url */ "./svg/graphics/banner-conversions-setup-cta.svg?url");
/* harmony import */ var _svg_graphics_banner_conversions_setup_cta_mobile_svg_url__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/svg/graphics/banner-conversions-setup-cta-mobile.svg?url */ "./svg/graphics/banner-conversions-setup-cta-mobile.svg?url");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * KeyMetricsSetupCTAWidget component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */
















function KeyMetricsSetupCTAWidget({
  Widget,
  WidgetNull
}) {
  const trackingRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_17__.useRef)();
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_10__["default"])();
  const trackEventCategory = `${viewContext}_kmw-cta-notification`;
  const displayCTAWidget = (0,_hooks_useDisplayCTAWidget__WEBPACK_IMPORTED_MODULE_11__["default"])();
  const ctaLink = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_SITE).getAdminURL('googlesitekit-user-input'));
  const fullScreenSelectionLink = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_SITE).getAdminURL('googlesitekit-metric-selection'));
  const isNavigatingToCTALink = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => ctaLink && select(_js_googlesitekit_datastore_location_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_LOCATION).isNavigatingTo(ctaLink));
  const intersectionEntry = (0,react_use__WEBPACK_IMPORTED_MODULE_18__["default"])(trackingRef, {
    threshold: 0.25
  });
  const [hasBeenInView, setHasBeenInView] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_17__.useState)(false);
  const inView = !!intersectionEntry?.intersectionRatio;
  const {
    triggerSurvey
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_17__.useEffect)(() => {
    if (!inView || hasBeenInView) {
      return;
    }
    (0,_js_util__WEBPACK_IMPORTED_MODULE_9__.trackEvent)(`${viewContext}_kmw-cta-notification`, 'view_notification');
    triggerSurvey('view_kmw_setup_cta', {
      ttl: _js_util__WEBPACK_IMPORTED_MODULE_9__.WEEK_IN_SECONDS
    });
    setHasBeenInView(true);
  }, [inView, hasBeenInView, viewContext, triggerSurvey]);
  const tooltipSettings = {
    tooltipSlug: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_SETUP_CTA_WIDGET_SLUG,
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You can always set up goals in Settings later', 'google-site-kit'),
    content: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('The Key Metrics section will be added back to your dashboard once you set your goals in Settings', 'google-site-kit'),
    dismissLabel: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Got it', 'google-site-kit')
  };
  const showTooltip = (0,_js_components_AdminScreenTooltip__WEBPACK_IMPORTED_MODULE_8__.useShowTooltip)(tooltipSettings);
  const {
    dismissItem
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER);
  const handleDismiss = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_17__.useCallback)(async () => {
    await (0,_js_util__WEBPACK_IMPORTED_MODULE_9__.trackEvent)(trackEventCategory, 'dismiss_notification');
    showTooltip();
    await dismissItem(_constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_SETUP_CTA_WIDGET_SLUG);
  }, [trackEventCategory, showTooltip, dismissItem]);
  const {
    navigateTo
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_location_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_LOCATION);
  const openMetricsSelectionPanel = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_17__.useCallback)(async () => {
    await (0,_js_util__WEBPACK_IMPORTED_MODULE_9__.trackEvent)(trackEventCategory, 'confirm_pick_own_metrics');
    await dismissItem(_constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_SETUP_CTA_WIDGET_SLUG);
    navigateTo(fullScreenSelectionLink);
  }, [trackEventCategory, dismissItem, navigateTo, fullScreenSelectionLink]);
  const onGetTailoredMetricsClick = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_17__.useCallback)(async () => {
    await (0,_js_util__WEBPACK_IMPORTED_MODULE_9__.trackEvent)(trackEventCategory, 'confirm_get_tailored_metrics');
    await dismissItem(_constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_SETUP_CTA_WIDGET_SLUG);
    navigateTo(ctaLink);
  }, [trackEventCategory, dismissItem, navigateTo, ctaLink]);
  if (!displayCTAWidget) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsx)(WidgetNull, {});
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsx)(Widget, {
    noPadding: true,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsx)(_js_components_Banner__WEBPACK_IMPORTED_MODULE_12__["default"], {
      ref: trackingRef,
      className: "googlesitekit-banner--setup-cta",
      title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Get personalized suggestions for user interaction metrics based on your goals', 'google-site-kit'),
      description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Answer 3 questions and we’ll suggest relevant metrics for your dashboard. These metrics will help you track how users interact with your site.', 'google-site-kit'),
      dismissButton: {
        label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Maybe later', 'google-site-kit'),
        onClick: handleDismiss
      },
      ctaButton: {
        label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Get tailored metrics', 'google-site-kit'),
        onClick: onGetTailoredMetricsClick,
        disabled: isNavigatingToCTALink,
        inProgress: isNavigatingToCTALink
      },
      svg: {
        desktop: _svg_graphics_banner_conversions_setup_cta_svg_url__WEBPACK_IMPORTED_MODULE_14__["default"],
        mobile: _svg_graphics_banner_conversions_setup_cta_mobile_svg_url__WEBPACK_IMPORTED_MODULE_15__["default"],
        verticalPosition: 'top'
      },
      footer: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsxs)("div", {
        className: "googlesitekit-widget-key-metrics-footer",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsx)("span", {
          children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Interested in specific metrics?', 'google-site-kit')
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_13__["default"], {
          onClick: openMetricsSelectionPanel,
          children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Select your own metrics', 'google-site-kit')
        })]
      })
    })
  });
}
KeyMetricsSetupCTAWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_19___default().elementType).isRequired,
  WidgetNull: (prop_types__WEBPACK_IMPORTED_MODULE_19___default().elementType)
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_7__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_6__.MODULE_SLUG_ANALYTICS_4
})(KeyMetricsSetupCTAWidget));

/***/ }),

/***/ "./js/components/KeyMetrics/LostEventsSubtleNotification.js":
/*!******************************************************************!*\
  !*** ./js/components/KeyMetrics/LostEventsSubtleNotification.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ LostEventsSubtleNotification)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/data */ "../node_modules/@wordpress/data/build-module/components/use-select/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_components_Notice__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/components/Notice */ "./js/components/Notice/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * LostEventsSubtleNotification component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */




function LostEventsSubtleNotification({
  onSelectMetricsCallback,
  onDismissCallback
}) {
  const lostEventsDocumentationURL = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_5__["default"])(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_SITE).getDocumentationLinkURL('unavailable-metrics-data'));
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_js_components_Notice__WEBPACK_IMPORTED_MODULE_3__["default"], {
    type: _js_components_Notice__WEBPACK_IMPORTED_MODULE_3__["default"].TYPES.WARNING,
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Unavailable metrics data', 'google-site-kit'),
    description: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('We couldn’t detect any events for some of your metrics in over 90 days. You can select other metrics for your dashboard. <a>Learn more</a>', 'google-site-kit'), {
      a: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_2__["default"], {
        href: lostEventsDocumentationURL,
        "aria-label": (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Learn more about unavailable metric data', 'google-site-kit'),
        external: true
      })
    }),
    dismissButton: {
      label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Got it', 'google-site-kit'),
      onClick: onDismissCallback
    },
    ctaButton: {
      label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Select metrics', 'google-site-kit'),
      onClick: onSelectMetricsCallback
    }
  });
}
LostEventsSubtleNotification.propTypes = {
  ..._js_components_Notice__WEBPACK_IMPORTED_MODULE_3__["default"].propTypes
};

/***/ }),

/***/ "./js/components/KeyMetrics/MetricTileError.js":
/*!*****************************************************!*\
  !*** ./js/components/KeyMetrics/MetricTileError.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ MetricTileError)
/* harmony export */ });
/* harmony import */ var _js_components_notifications_CTA__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/components/notifications/CTA */ "./js/components/notifications/CTA.js");
/* harmony import */ var _js_components_InfoTooltip__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/InfoTooltip */ "./js/components/InfoTooltip.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * MetricTileError component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */



function MetricTileError(props) {
  const {
    children,
    headerText,
    infoTooltip,
    title
  } = props;
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", {
    className: "googlesitekit-km-widget-tile--error",
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_js_components_notifications_CTA__WEBPACK_IMPORTED_MODULE_0__["default"], {
      title: title,
      headerText: headerText,
      headerContent: infoTooltip && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_js_components_InfoTooltip__WEBPACK_IMPORTED_MODULE_1__["default"], {
        title: infoTooltip
      }),
      description: "",
      error: true,
      children: children
    })
  });
}

/***/ }),

/***/ "./js/components/KeyMetrics/MetricTileHeader.js":
/*!******************************************************!*\
  !*** ./js/components/KeyMetrics/MetricTileHeader.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ MetricTileHeader)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _js_components_InfoTooltip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/components/InfoTooltip */ "./js/components/InfoTooltip.js");
/* harmony import */ var _js_components_VisuallyHidden__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/VisuallyHidden */ "./js/components/VisuallyHidden.js");
/* harmony import */ var _js_components_Typography__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/Typography */ "./js/components/Typography/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * MetricTileHeader component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */




function MetricTileHeader({
  title,
  infoTooltip,
  loading
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", {
    className: "googlesitekit-km-widget-tile__title-container",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_2__["default"], {
      as: "h3",
      size: "small",
      type: "label",
      className: "googlesitekit-km-widget-tile__title",
      children: title
    }), loading ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_js_components_VisuallyHidden__WEBPACK_IMPORTED_MODULE_1__["default"], {
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_js_components_InfoTooltip__WEBPACK_IMPORTED_MODULE_0__["default"], {
        title: infoTooltip
      })
    }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_js_components_InfoTooltip__WEBPACK_IMPORTED_MODULE_0__["default"], {
      title: infoTooltip
    })]
  });
}
MetricTileHeader.propTypes = {
  title: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string),
  infoTooltip: prop_types__WEBPACK_IMPORTED_MODULE_4___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_4___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_4___default().element)]),
  loading: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().bool)
};

/***/ }),

/***/ "./js/components/KeyMetrics/MetricTileLoader.js":
/*!******************************************************!*\
  !*** ./js/components/KeyMetrics/MetricTileLoader.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ MetricTileLoader)
/* harmony export */ });
/* harmony import */ var _js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/components/PreviewBlock */ "./js/components/PreviewBlock.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Loader for `MetricTile` components.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */


function MetricTileLoader() {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
    className: "googlesitekit-km-widget-tile__loading",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_0__["default"], {
      className: "googlesitekit-km-widget-tile__loading-header",
      width: "100%",
      height: "14px"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_0__["default"], {
      className: "googlesitekit-km-widget-tile__loading-body",
      width: "100%",
      height: "53px"
    })]
  });
}

/***/ }),

/***/ "./js/components/KeyMetrics/MetricTileNumeric.js":
/*!*******************************************************!*\
  !*** ./js/components/KeyMetrics/MetricTileNumeric.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ MetricTileNumeric)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_components_ChangeBadge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/ChangeBadge */ "./js/components/ChangeBadge.js");
/* harmony import */ var _MetricTileWrapper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MetricTileWrapper */ "./js/components/KeyMetrics/MetricTileWrapper.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * MetricTileNumeric component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */




function MetricTileNumeric({
  metricValue,
  metricValueFormat,
  subText,
  previousValue,
  currentValue,
  ...props
}) {
  const formatOptions = (0,_js_util__WEBPACK_IMPORTED_MODULE_0__.expandNumFmtOptions)(metricValueFormat);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_MetricTileWrapper__WEBPACK_IMPORTED_MODULE_2__["default"], {
    className: "googlesitekit-km-widget-tile--numeric",
    ...props,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", {
      className: "googlesitekit-km-widget-tile__metric-container",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
        className: "googlesitekit-km-widget-tile__metric",
        children: (0,_js_util__WEBPACK_IMPORTED_MODULE_0__.numFmt)(metricValue, formatOptions)
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("p", {
        className: "googlesitekit-km-widget-tile__subtext",
        children: subText
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
      className: "googlesitekit-km-widget-tile__metric-change-container",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_js_components_ChangeBadge__WEBPACK_IMPORTED_MODULE_1__["default"], {
        previousValue: previousValue,
        currentValue: currentValue,
        isAbsolute: formatOptions?.style === 'percent'
      })
    })]
  });
}
MetricTileNumeric.propTypes = {
  metricValue: prop_types__WEBPACK_IMPORTED_MODULE_4___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_4___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number)]),
  metricValueFormat: prop_types__WEBPACK_IMPORTED_MODULE_4___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_4___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_4___default().object)]),
  subtext: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string),
  previousValue: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number),
  currentValue: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number)
};

/***/ }),

/***/ "./js/components/KeyMetrics/MetricTileTable.js":
/*!*****************************************************!*\
  !*** ./js/components/KeyMetrics/MetricTileTable.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ MetricTileTable)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _MetricTileWrapper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MetricTileWrapper */ "./js/components/KeyMetrics/MetricTileWrapper.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */




/**
 * Internal dependencies
 */


function MetricTileTable({
  rows = [],
  columns = [],
  limit,
  ZeroState,
  ...props
}) {
  let tileBody = null;
  if (rows?.length > 0) {
    tileBody = rows.slice(0, limit || rows.length).map((row, rowIndex) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
      className: "googlesitekit-table__body-row",
      children: columns.map(({
        Component,
        field,
        className
      }, colIndex) => {
        const fieldValue = field !== undefined ? (0,lodash__WEBPACK_IMPORTED_MODULE_0__.get)(row, field) : undefined;
        return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", {
          className: classnames__WEBPACK_IMPORTED_MODULE_1___default()('googlesitekit-table__body-item', className),
          children: [Component && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(Component, {
            row: row,
            fieldValue: fieldValue
          }), !Component && fieldValue]
        }, colIndex);
      })
    }, rowIndex));
  } else if (!!ZeroState) {
    tileBody = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
      className: "googlesitekit-table__body-row googlesitekit-table__body-row--no-data",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
        className: "googlesitekit-table__body-zero-data",
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(ZeroState, {})
      })
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_MetricTileWrapper__WEBPACK_IMPORTED_MODULE_2__["default"], {
    className: "googlesitekit-km-widget-tile--table",
    ...props,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
      className: "googlesitekit-km-widget-tile__table",
      children: tileBody
    })
  });
}
MetricTileTable.propTypes = {
  rows: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().array),
  columns: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().array),
  limit: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number),
  ZeroState: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().elementType)
};

/***/ }),

/***/ "./js/components/KeyMetrics/MetricTileTablePlainText.js":
/*!**************************************************************!*\
  !*** ./js/components/KeyMetrics/MetricTileTablePlainText.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ MetricTileTablePlainText)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * MetricTileTablePlainText component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


function MetricTileTablePlainText({
  content
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p", {
    className: "googlesitekit-km-widget-tile__table-plain-text",
    children: content
  });
}
MetricTileTablePlainText.propTypes = {
  content: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string).isRequired
};

/***/ }),

/***/ "./js/components/KeyMetrics/MetricTileText.js":
/*!****************************************************!*\
  !*** ./js/components/KeyMetrics/MetricTileText.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ MetricTileText)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _js_components_ChangeBadge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/components/ChangeBadge */ "./js/components/ChangeBadge.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _MetricTileWrapper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MetricTileWrapper */ "./js/components/KeyMetrics/MetricTileWrapper.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * MetricTileText component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */




function MetricTileText({
  metricValue,
  metricValueFormat,
  subText,
  previousValue,
  currentValue,
  ...props
}) {
  const formatOptions = (0,_js_util__WEBPACK_IMPORTED_MODULE_1__.expandNumFmtOptions)(metricValueFormat);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_MetricTileWrapper__WEBPACK_IMPORTED_MODULE_2__["default"], {
    className: "googlesitekit-km-widget-tile--text",
    ...props,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", {
      className: "googlesitekit-km-widget-tile__metric-container",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
        className: "googlesitekit-km-widget-tile__metric",
        children: metricValue
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("p", {
        className: "googlesitekit-km-widget-tile__subtext",
        children: subText
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
      className: "googlesitekit-km-widget-tile__metric-change-container",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_js_components_ChangeBadge__WEBPACK_IMPORTED_MODULE_0__["default"], {
        previousValue: previousValue,
        currentValue: currentValue,
        isAbsolute: formatOptions?.style === 'percent'
      })
    })]
  });
}
MetricTileText.propTypes = {
  metricValue: prop_types__WEBPACK_IMPORTED_MODULE_4___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_4___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number)]),
  subtext: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string),
  previousValue: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number),
  currentValue: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().number)
};

/***/ }),

/***/ "./js/components/KeyMetrics/MetricTileWrapper.js":
/*!*******************************************************!*\
  !*** ./js/components/KeyMetrics/MetricTileWrapper.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ MetricTileWrapper)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_14__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _key_metrics_widgets__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./key-metrics-widgets */ "./js/components/KeyMetrics/key-metrics-widgets.js");
/* harmony import */ var _GetHelpLink__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./GetHelpLink */ "./js/components/KeyMetrics/GetHelpLink.js");
/* harmony import */ var _MetricTileLoader__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./MetricTileLoader */ "./js/components/KeyMetrics/MetricTileLoader.js");
/* harmony import */ var _MetricTileError__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./MetricTileError */ "./js/components/KeyMetrics/MetricTileError.js");
/* harmony import */ var _MetricTileHeader__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./MetricTileHeader */ "./js/components/KeyMetrics/MetricTileHeader.js");
/* harmony import */ var _js_components_ReportErrorActions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/components/ReportErrorActions */ "./js/components/ReportErrorActions.js");
/* harmony import */ var _js_util_errors__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/util/errors */ "./js/util/errors.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * MetricTileWrapper component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */




/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */










function MetricTileWrapper(props) {
  const {
    className,
    children,
    error,
    loading,
    moduleSlug,
    Widget,
    widgetSlug,
    title = _key_metrics_widgets__WEBPACK_IMPORTED_MODULE_3__.KEY_METRICS_WIDGETS[widgetSlug]?.title,
    infoTooltip = _key_metrics_widgets__WEBPACK_IMPORTED_MODULE_3__.KEY_METRICS_WIDGETS[widgetSlug]?.infoTooltip || _key_metrics_widgets__WEBPACK_IMPORTED_MODULE_3__.KEY_METRICS_WIDGETS[widgetSlug]?.description
  } = props;
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_11__["default"])();
  const hasInsufficientPermissionsReportError = error ? (0,lodash__WEBPACK_IMPORTED_MODULE_1__.castArray)(error).some(_js_util_errors__WEBPACK_IMPORTED_MODULE_9__.isInsufficientPermissionsError) : false;
  const trackRetryEvent = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_13__.useCallback)(() => {
    (0,_js_util__WEBPACK_IMPORTED_MODULE_10__.trackEvent)(`${viewContext}_kmw`, 'data_loading_error_retry');
  }, [viewContext]);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_13__.useEffect)(() => {
    if (!!error) {
      (0,_js_util__WEBPACK_IMPORTED_MODULE_10__.trackEvent)(`${viewContext}_kmw`, 'data_loading_error');
    }
  }, [viewContext, error]);
  if (error) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_MetricTileError__WEBPACK_IMPORTED_MODULE_6__["default"], {
      title: hasInsufficientPermissionsReportError ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Insufficient permissions', 'google-site-kit') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Data loading failed', 'google-site-kit'),
      headerText: title,
      infoTooltip: infoTooltip,
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_js_components_ReportErrorActions__WEBPACK_IMPORTED_MODULE_8__["default"], {
        moduleSlug: moduleSlug,
        error: error,
        onRetry: trackRetryEvent,
        GetHelpLink: hasInsufficientPermissionsReportError ? _GetHelpLink__WEBPACK_IMPORTED_MODULE_4__["default"] : undefined,
        getHelpClassName: "googlesitekit-error-retry-text"
      })
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(Widget, {
    noPadding: true,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxs)("div", {
      className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-km-widget-tile', className),
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_MetricTileHeader__WEBPACK_IMPORTED_MODULE_7__["default"], {
        title: title,
        infoTooltip: infoTooltip,
        loading: loading
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsxs)("div", {
        className: "googlesitekit-km-widget-tile__body",
        children: [loading && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_MetricTileLoader__WEBPACK_IMPORTED_MODULE_5__["default"], {}), !loading && children]
      })]
    })
  });
}
MetricTileWrapper.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().elementType).isRequired,
  loading: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().bool),
  title: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().string),
  infoTooltip: prop_types__WEBPACK_IMPORTED_MODULE_14___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_14___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_14___default().element)]),
  moduleSlug: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().string).isRequired
};

/***/ }),

/***/ "./js/components/KeyMetrics/MetricsSelectionPanel/MetricItem.js":
/*!**********************************************************************!*\
  !*** ./js/components/KeyMetrics/MetricsSelectionPanel/MetricItem.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ MetricItem)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_googlesitekit_widgets_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/widgets/datastore/constants */ "./js/googlesitekit/widgets/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/KeyMetrics/constants */ "./js/components/KeyMetrics/constants.js");
/* harmony import */ var _js_components_SelectionPanel__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/SelectionPanel */ "./js/components/SelectionPanel/index.js");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Key Metrics Selection Panel MetricItem
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */








function MetricItem({
  slug,
  title,
  description,
  isNewlyDetected,
  savedItemSlugs = []
}) {
  const disconnectedModules = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    const {
      getModule
    } = select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_MODULES);
    const widget = select(_js_googlesitekit_widgets_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_WIDGETS).getWidget(slug);
    return widget?.modules.reduce((modulesAcc, widgetSlug) => {
      const module = getModule(widgetSlug);
      if (module?.connected || !module?.name) {
        return modulesAcc;
      }
      return [...modulesAcc, module.name];
    }, []);
  });
  const selectedMetrics = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_7__["default"])(_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_SELECTION_FORM, _js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_SELECTED);
  const {
    getValue
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_FORMS));
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_FORMS);
  const onCheckboxChange = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_9__.useCallback)(event => {
    const metrics = getValue(_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_SELECTION_FORM, _js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_SELECTED);
    const currentlySelectedMetrics = event.target.checked ? metrics.concat([slug]) : metrics.filter(selectedMetric => selectedMetric !== slug);
    setValues(_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_SELECTION_FORM, {
      [_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_SELECTED]: currentlySelectedMetrics,
      // Unstaged list creates a copy of KM selected list, but unstaged
      // is stored temporary to collect the final selection that will
      // be transfered over to effective selection on tab change and then it is reset.
      [_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_5__.UNSTAGED_SELECTION]: currentlySelectedMetrics
    });
  }, [getValue, setValues, slug]);
  const isMetricSelected = selectedMetrics?.includes(slug);
  const isMetricDisabled = !savedItemSlugs.includes(slug) && disconnectedModules.length > 0;
  const id = `key-metric-selection-checkbox-${slug}`;
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_js_components_SelectionPanel__WEBPACK_IMPORTED_MODULE_6__.SelectionPanelItem, {
    id: id,
    slug: slug,
    title: title,
    description: description,
    isNewlyDetected: isNewlyDetected,
    isItemSelected: isMetricSelected,
    isItemDisabled: isMetricDisabled,
    onCheckboxChange: onCheckboxChange,
    children: disconnectedModules.length > 0 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("div", {
      className: "googlesitekit-selection-panel-item-error",
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: module names. */
      (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__._n)('%s is disconnected, no data to show', '%s are disconnected, no data to show', disconnectedModules.length, 'google-site-kit'), disconnectedModules.join((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)(' and ', 'google-site-kit')))
    })
  });
}
MetricItem.propTypes = {
  slug: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().string).isRequired,
  title: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().string).isRequired,
  description: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().string).isRequired,
  isNewlyDetected: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().bool),
  savedItemSlugs: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().array)
};

/***/ }),

/***/ "./js/components/KeyMetrics/SetupCompletedSurveyTrigger.js":
/*!*****************************************************************!*\
  !*** ./js/components/KeyMetrics/SetupCompletedSurveyTrigger.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SetupCompletedSurveyTrigger)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_components_surveys_SurveyViewTrigger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/surveys/SurveyViewTrigger */ "./js/components/surveys/SurveyViewTrigger.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Key Metrics SetupCompletedSurveyTrigger component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */






function SetupCompletedSurveyTrigger() {
  const isKeyMetricsSetupCompleted = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_SITE).isKeyMetricsSetupCompleted());
  const isKeyMetricsSetupCompletedBy = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_SITE).getKeyMetricsSetupCompletedBy());
  const currentUserID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).getID());
  if (!isKeyMetricsSetupCompleted) {
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__.Fragment, {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_surveys_SurveyViewTrigger__WEBPACK_IMPORTED_MODULE_4__["default"], {
      triggerID: "view_kmw",
      ttl: _js_util__WEBPACK_IMPORTED_MODULE_3__.WEEK_IN_SECONDS
    }), isKeyMetricsSetupCompletedBy === currentUserID && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_surveys_SurveyViewTrigger__WEBPACK_IMPORTED_MODULE_4__["default"], {
      triggerID: "view_kmw_setup_completed",
      ttl: _js_util__WEBPACK_IMPORTED_MODULE_3__.WEEK_IN_SECONDS
    })]
  });
}

/***/ }),

/***/ "./js/components/KeyMetrics/constants.js":
/*!***********************************************!*\
  !*** ./js/components/KeyMetrics/constants.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   EFFECTIVE_SELECTION: () => (/* binding */ EFFECTIVE_SELECTION),
/* harmony export */   KEY_METRICS_GROUP_CONTENT_PERFORMANCE: () => (/* binding */ KEY_METRICS_GROUP_CONTENT_PERFORMANCE),
/* harmony export */   KEY_METRICS_GROUP_CURRENT: () => (/* binding */ KEY_METRICS_GROUP_CURRENT),
/* harmony export */   KEY_METRICS_GROUP_DRIVING_TRAFFIC: () => (/* binding */ KEY_METRICS_GROUP_DRIVING_TRAFFIC),
/* harmony export */   KEY_METRICS_GROUP_GENERATING_LEADS: () => (/* binding */ KEY_METRICS_GROUP_GENERATING_LEADS),
/* harmony export */   KEY_METRICS_GROUP_SELLING_PRODUCTS: () => (/* binding */ KEY_METRICS_GROUP_SELLING_PRODUCTS),
/* harmony export */   KEY_METRICS_GROUP_SUGGESTED: () => (/* binding */ KEY_METRICS_GROUP_SUGGESTED),
/* harmony export */   KEY_METRICS_GROUP_VISITORS: () => (/* binding */ KEY_METRICS_GROUP_VISITORS),
/* harmony export */   KEY_METRICS_SELECTED: () => (/* binding */ KEY_METRICS_SELECTED),
/* harmony export */   KEY_METRICS_SELECTION_FORM: () => (/* binding */ KEY_METRICS_SELECTION_FORM),
/* harmony export */   KEY_METRICS_SELECTION_PANEL_OPENED_KEY: () => (/* binding */ KEY_METRICS_SELECTION_PANEL_OPENED_KEY),
/* harmony export */   KEY_METRICS_SETUP_CTA_WIDGET_SLUG: () => (/* binding */ KEY_METRICS_SETUP_CTA_WIDGET_SLUG),
/* harmony export */   MAX_SELECTED_METRICS_COUNT: () => (/* binding */ MAX_SELECTED_METRICS_COUNT),
/* harmony export */   MIN_SELECTED_METRICS_COUNT: () => (/* binding */ MIN_SELECTED_METRICS_COUNT),
/* harmony export */   UNSTAGED_SELECTION: () => (/* binding */ UNSTAGED_SELECTION)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/**
 * Key Metrics components - constants.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */

const KEY_METRICS_SETUP_CTA_WIDGET_SLUG = 'key-metrics-setup-cta-widget';
const KEY_METRICS_SELECTION_PANEL_OPENED_KEY = 'googlesitekit-key-metrics-selection-panel-opened';
const KEY_METRICS_SELECTION_FORM = 'key-metrics-selection-form';
const KEY_METRICS_SELECTED = 'key-metrics-selected';
const EFFECTIVE_SELECTION = 'key-metrics-effective-selection';
const UNSTAGED_SELECTION = 'key-metrics-unstaged-selection';
const MIN_SELECTED_METRICS_COUNT = 2;
const MAX_SELECTED_METRICS_COUNT = 8;
const KEY_METRICS_GROUP_CURRENT = {
  SLUG: 'current-selection',
  LABEL: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Current selection', 'google-site-kit')
};
const KEY_METRICS_GROUP_SUGGESTED = {
  SLUG: 'suggested',
  LABEL: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Suggested', 'google-site-kit')
};
const KEY_METRICS_GROUP_VISITORS = {
  SLUG: 'visitors',
  LABEL: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Visitors', 'google-site-kit')
};
const KEY_METRICS_GROUP_DRIVING_TRAFFIC = {
  SLUG: 'driving-traffic',
  LABEL: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Driving traffic', 'google-site-kit')
};
const KEY_METRICS_GROUP_GENERATING_LEADS = {
  SLUG: 'generating-leads',
  LABEL: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Generating leads', 'google-site-kit')
};
const KEY_METRICS_GROUP_SELLING_PRODUCTS = {
  SLUG: 'selling-products',
  LABEL: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Selling products', 'google-site-kit')
};
const KEY_METRICS_GROUP_CONTENT_PERFORMANCE = {
  SLUG: 'content-performance',
  LABEL: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Content performance', 'google-site-kit')
};

/***/ }),

/***/ "./js/components/KeyMetrics/hooks/useChangeMetricsFeatureTourEffect.js":
/*!*****************************************************************************!*\
  !*** ./js/components/KeyMetrics/hooks/useChangeMetricsFeatureTourEffect.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   useChangeMetricsFeatureTourEffect: () => (/* binding */ useChangeMetricsFeatureTourEffect)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_feature_tours_shared_key_metrics__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/feature-tours/shared-key-metrics */ "./js/feature-tours/shared-key-metrics.js");
/**
 * Change metrics feature tour hook.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */





/**
 * Triggers on demand tour for shared key metrics if all conditions are met.
 *
 * @since 1.113.0
 *
 * @param {Object}  options                        Options object.
 * @param {boolean} options.renderChangeMetricLink If metric link meets the conditions to render.
 */
function useChangeMetricsFeatureTourEffect({
  renderChangeMetricLink
}) {
  const keyMetricsSetupCompletedBy = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_SITE).getKeyMetricsSetupCompletedBy());
  const currentUserID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).getID());
  const {
    triggerOnDemandTour
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER);
  const isUserEligibleForTour = Number.isInteger(keyMetricsSetupCompletedBy) && Number.isInteger(currentUserID) && keyMetricsSetupCompletedBy > 0 && currentUserID !== keyMetricsSetupCompletedBy;
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.useEffect)(() => {
    if (renderChangeMetricLink && isUserEligibleForTour) {
      triggerOnDemandTour(_js_feature_tours_shared_key_metrics__WEBPACK_IMPORTED_MODULE_3__["default"]);
    }
  }, [renderChangeMetricLink, isUserEligibleForTour, triggerOnDemandTour]);
}

/***/ }),

/***/ "./js/components/KeyMetrics/hooks/useCurrentlyActiveEvents.js":
/*!********************************************************************!*\
  !*** ./js/components/KeyMetrics/hooks/useCurrentlyActiveEvents.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ useCurrentlyActiveEvents)
/* harmony export */ });
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/**
 * The useCurrentlyActiveEvents hook.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */




/**
 * Gets the list of currently active conversion events based on user selection
 * or user input settings.
 *
 * @since 1.163.0
 *
 * @return {Array<string>|undefined} List of currently active conversion events.
 */
function useCurrentlyActiveEvents() {
  return (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    const userPickedMetrics = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).getUserPickedMetrics();
    if (userPickedMetrics?.length) {
      // Safe to access without GA4 connection; no network request.
      const keyMetricsConversionEventWidgets = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getKeyMetricsConversionEventWidgets();
      return Object.keys(keyMetricsConversionEventWidgets).filter(event => userPickedMetrics.some(metric => keyMetricsConversionEventWidgets[event].includes(metric)));
    }
    const userInputSettings = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).getUserInputSettings();
    return userInputSettings?.includeConversionEvents?.values;
  });
}

/***/ }),

/***/ "./js/components/KeyMetrics/hooks/useDisplayCTAWidget.js":
/*!***************************************************************!*\
  !*** ./js/components/KeyMetrics/hooks/useDisplayCTAWidget.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ useDisplayCTAWidget)
/* harmony export */ });
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/components/KeyMetrics/constants */ "./js/components/KeyMetrics/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_modules_search_console_datastore_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/search-console/datastore/constants */ "./js/modules/search-console/datastore/constants.js");
/* harmony import */ var _js_modules_search_console_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/modules/search-console/constants */ "./js/modules/search-console/constants.js");
/**
 * Determines whether the CTA widget should be displayed.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */









/**
 * Determines whether the CTA widget should be displayed.
 *
 * @since 1.140.0
 *
 * @return {boolean} Whether the CTA widget should be displayed.
 */
function useDisplayCTAWidget() {
  return (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    const isDismissed = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).isItemDismissed(_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_3__.KEY_METRICS_SETUP_CTA_WIDGET_SLUG);
    const isDismissingItem = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).isDismissingItem(_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_3__.KEY_METRICS_SETUP_CTA_WIDGET_SLUG);

    // We call isGatheringData() within this hook for completeness as we do not want to rely
    // on it being called in other components. This selector makes report requests which, if they return
    // data, then the `data-available` transients are set. These transients are prefetched as a global on
    // the next page load.

    const searchConsoleDataAvailableOnLoad = isModuleDataAvailableOnLoad(select, _js_modules_search_console_constants__WEBPACK_IMPORTED_MODULE_7__.MODULE_SLUG_SEARCH_CONSOLE, _js_modules_search_console_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_SEARCH_CONSOLE);
    const analyticsDataAvailableOnLoad = isModuleDataAvailableOnLoad(select, _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4);
    return isDismissed === false && isDismissingItem === false && searchConsoleDataAvailableOnLoad && analyticsDataAvailableOnLoad;
  }, []);
}
function isModuleDataAvailableOnLoad(select, slug, storeName) {
  if (select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_MODULES).isModuleConnected(slug)) {
    const {
      isGatheringData,
      isDataAvailableOnLoad
    } = select(storeName);
    isGatheringData();
    return isDataAvailableOnLoad();
  }
  return false;
}

/***/ }),

/***/ "./js/components/KeyMetrics/hooks/useDisplayNewEventsCalloutAfterInitialDetection.js":
/*!*******************************************************************************************!*\
  !*** ./js/components/KeyMetrics/hooks/useDisplayNewEventsCalloutAfterInitialDetection.js ***!
  \*******************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ useDisplayNewEventsCalloutAfterInitialDetection)
/* harmony export */ });
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/**
 * Determines whether the new events callout should be displayed to the user.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* eslint-disable sitekit/jsdoc-no-unnamed-boolean-params */

/**
 * Internal dependencies
 */




/**
 * Determines whether the new events callout should be displayed.
 *
 * @since 1.144.0
 *
 * @param {boolean} haveNewConversionEventsAfterDismiss If there are new events detected after callout was dismissed.
 * @return {boolean} Whether the new events callout should be displayed.
 */
function useDisplayNewEventsCalloutAfterInitialDetection(haveNewConversionEventsAfterDismiss) {
  return (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    const isKeyMetricsSetupCompleted = select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_SITE).isKeyMetricsSetupCompleted();
    const haveConversionEventsWithDifferentMetrics = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).haveConversionEventsWithDifferentMetrics();
    return isKeyMetricsSetupCompleted && haveConversionEventsWithDifferentMetrics && haveNewConversionEventsAfterDismiss;
  });
}

/***/ }),

/***/ "./js/components/KeyMetrics/hooks/useDisplayNewEventsCalloutForTailoredMetrics.js":
/*!****************************************************************************************!*\
  !*** ./js/components/KeyMetrics/hooks/useDisplayNewEventsCalloutForTailoredMetrics.js ***!
  \****************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ useDisplayNewEventsCalloutForTailoredMetrics)
/* harmony export */ });
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/**
 * Determines whether the initial new events callout should be displayed to the tailored metrics user.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* eslint-disable sitekit/jsdoc-no-unnamed-boolean-params */

/**
 * Internal dependencies
 */




/**
 * Determines whether the initial new events callout should be displayed.
 *
 * @since 1.144.0
 *
 * @param {boolean} haveNewConversionEventsAfterDismiss If there are new events detected after callout was dismissed.
 * @return {boolean} Whether the initial new events callout should be displayed.
 */
function useDisplayNewEventsCalloutForTailoredMetrics(haveNewConversionEventsAfterDismiss) {
  return (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    const {
      isUserInputCompleted: getIsUserInputCompleted,
      getUserPickedMetrics,
      getUserInputSettings,
      getID
    } = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER);
    const hasUserPickedMetrics = getUserPickedMetrics();
    const isUserInputCompleted = getIsUserInputCompleted();
    const userInputSettings = getUserInputSettings();
    const sitePurposeAnsweredBy = userInputSettings?.purpose?.answeredBy;
    const currentUserID = getID();
    const haveConversionReportingEventsForTailoredMetrics = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).haveConversionEventsForTailoredMetrics(true);
    return !hasUserPickedMetrics?.length && isUserInputCompleted && haveConversionReportingEventsForTailoredMetrics && haveNewConversionEventsAfterDismiss &&
    // Ensure that the user who last added or edited the site purpose answer
    // sees the callout to automatically add the new conversion reporting metrics via the CTA.
    sitePurposeAnsweredBy === currentUserID;
  });
}

/***/ }),

/***/ "./js/components/KeyMetrics/hooks/useDisplayNewEventsCalloutForUserPickedMetrics.js":
/*!******************************************************************************************!*\
  !*** ./js/components/KeyMetrics/hooks/useDisplayNewEventsCalloutForUserPickedMetrics.js ***!
  \******************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ useDisplayNewEventsCalloutForUserPickedMetrics)
/* harmony export */ });
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/**
 * Determines whether the initial new events callout should be displayed to the user with manually-selected metrics.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* eslint-disable sitekit/jsdoc-no-unnamed-boolean-params */

/**
 * Internal dependencies
 */





/**
 * Determines whether the initial new events callout should be displayed.
 *
 * @since 1.144.0
 *
 * @param {boolean} haveNewConversionEventsAfterDismiss If there are new events detected after callout was dismissed.
 * @return {boolean} Whether the initial new events callout should be displayed.
 */
function useDisplayNewEventsCalloutForUserPickedMetrics(haveNewConversionEventsAfterDismiss) {
  return (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    const hasUserPickedMetrics = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).getUserPickedMetrics();
    const hasConversionEventsForUserPickedMetrics = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).haveConversionEventsForUserPickedMetrics(true);
    const isKeyMetricsSetupCompleted = select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_SITE).isKeyMetricsSetupCompleted();
    return hasUserPickedMetrics?.length && isKeyMetricsSetupCompleted && hasConversionEventsForUserPickedMetrics && haveNewConversionEventsAfterDismiss;
  });
}

/***/ }),

/***/ "./js/components/KeyMetrics/hooks/useFilteredKeyMetrics.js":
/*!*****************************************************************!*\
  !*** ./js/components/KeyMetrics/hooks/useFilteredKeyMetrics.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ useFilteredKeyMetrics)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/components/KeyMetrics/constants */ "./js/components/KeyMetrics/constants.js");
/**
 * The useFilteredKeyMetrics hook.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


/**
 * Filters and aggregates key metrics for the active group.
 *
 * @since 1.163.0
 *
 * @param {Object} args                                 Arguments.
 * @param {Object} args.allMetricItems                  All metric items keyed by slug.
 * @param {string} args.isActive                        Active group slug.
 * @param {Array}  args.effectiveSelection              Effective selection list.
 * @param {Array}  args.answerBasedMetrics              Tailored metrics for suggested group.
 * @param {Array}  args.selectedMetrics                 Currently selected metrics.
 * @param {Array}  args.newBadgeEvents                  Events that should show the "New" badge.
 * @param {Object} args.conversionReportingEventWidgets Mapping of event => [metric slugs].
 * @return {Object}                                     Object with `selectedCounts`, `activeMetricItems`, and `newlyDetectedMetrics`.
 */
function useFilteredKeyMetrics({
  allMetricItems = {},
  isActive,
  effectiveSelection = [],
  answerBasedMetrics = [],
  selectedMetrics = [],
  newBadgeEvents = [],
  conversionReportingEventWidgets = {}
}) {
  return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => {
    // Currently selected group does not include total selected number, so it will always be 0.
    const selectedCounts = {
      [_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_METRICS_GROUP_CURRENT.SLUG]: 0
    };
    const activeMetricItems = {};
    const newlyDetectedMetrics = {};
    for (const metricItemSlug in allMetricItems) {
      const metricGroup = allMetricItems[metricItemSlug].group;
      if (metricGroup === isActive || isActive === _js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_METRICS_GROUP_CURRENT.SLUG && effectiveSelection.includes(metricItemSlug)) {
        activeMetricItems[metricItemSlug] = allMetricItems[metricItemSlug];
      }
      if (isActive === _js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_0__.KEY_METRICS_GROUP_SUGGESTED.SLUG && answerBasedMetrics.includes(metricItemSlug)) {
        if (answerBasedMetrics.includes(metricItemSlug)) {
          activeMetricItems[metricItemSlug] = allMetricItems[metricItemSlug];
        }
      }
      if (!selectedCounts[metricGroup]) {
        const selectedCount = Object.keys(allMetricItems).filter(slug => {
          // Check if metric slug is in selectedMetrics, so the group count is reflected in real time as metrics are checked/unchecked.
          if (allMetricItems[slug].group === metricGroup && selectedMetrics?.includes(slug)) {
            return true;
          }
          return false;
        }).length;
        selectedCounts[metricGroup] = selectedCount;
      }

      // Check if metric is conversion event related and if new badge should be included.
      if (newBadgeEvents?.length) {
        const isNewlyDetectedKeyMetrics = newBadgeEvents.some(conversionEvent => conversionReportingEventWidgets[conversionEvent].includes(metricItemSlug));
        if (isNewlyDetectedKeyMetrics) {
          var _newlyDetectedMetrics;
          newlyDetectedMetrics[metricGroup] = [...((_newlyDetectedMetrics = newlyDetectedMetrics[metricGroup]) !== null && _newlyDetectedMetrics !== void 0 ? _newlyDetectedMetrics : []), metricItemSlug];
        }
      }
    }
    return {
      selectedCounts,
      activeMetricItems,
      newlyDetectedMetrics
    };
  }, [allMetricItems, isActive, effectiveSelection, answerBasedMetrics, selectedMetrics, newBadgeEvents, conversionReportingEventWidgets]);
}

/***/ }),

/***/ "./js/components/KeyMetrics/hooks/useKeyMetricsGroups.js":
/*!***************************************************************!*\
  !*** ./js/components/KeyMetrics/hooks/useKeyMetricsGroups.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ useKeyMetricsGroups)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/KeyMetrics/constants */ "./js/components/KeyMetrics/constants.js");
/**
 * The useKeyMetricsGroups hook.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



/**
 * Computes the key metrics groups and supporting flags for tailoring.
 *
 * @since 1.163.0
 *
 * @param {Object}  args                       Arguments.
 * @param {Array}   args.detectedEvents        Detected GA4 events.
 * @param {Array}   args.currentlyActiveEvents Currently active events from settings/user picks.
 * @param {boolean} args.isUserInputCompleted  Whether user input is completed.
 * @param {Array}   args.answerBasedMetrics    Tailored metrics based on answers/events.
 * @return {Object}                            Object with `hasGeneratingLeadsGroup`, `hasSellingProductsGroup`, `keyMetricsGroups`, and `dynamicGroups`.
 */
function useKeyMetricsGroups({
  detectedEvents = [],
  currentlyActiveEvents = [],
  isUserInputCompleted,
  answerBasedMetrics = []
}) {
  const hasGeneratingLeadsGroup = [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_0__.ENUM_CONVERSION_EVENTS.SUBMIT_LEAD_FORM, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_0__.ENUM_CONVERSION_EVENTS.CONTACT, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_0__.ENUM_CONVERSION_EVENTS.GENERATE_LEAD].filter(item => detectedEvents?.includes(item) || currentlyActiveEvents?.includes(item));
  const hasSellingProductsGroup = [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_0__.ENUM_CONVERSION_EVENTS.ADD_TO_CART, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_0__.ENUM_CONVERSION_EVENTS.PURCHASE].filter(item => detectedEvents?.includes(item) || currentlyActiveEvents?.includes(item));
  const keyMetricsGroups = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useMemo)(() => {
    return [_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_1__.KEY_METRICS_GROUP_VISITORS, _js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_1__.KEY_METRICS_GROUP_DRIVING_TRAFFIC, ...(hasGeneratingLeadsGroup?.length ? [_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_1__.KEY_METRICS_GROUP_GENERATING_LEADS] : []), ...(hasSellingProductsGroup?.length ? [_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_1__.KEY_METRICS_GROUP_SELLING_PRODUCTS] : []), _js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_1__.KEY_METRICS_GROUP_CONTENT_PERFORMANCE];
  }, [hasGeneratingLeadsGroup, hasSellingProductsGroup]);
  const dynamicGroups = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useMemo)(() => {
    if (isUserInputCompleted && answerBasedMetrics?.length) {
      return [_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_1__.KEY_METRICS_GROUP_CURRENT, _js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_1__.KEY_METRICS_GROUP_SUGGESTED];
    }
    return [_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_1__.KEY_METRICS_GROUP_CURRENT];
  }, [isUserInputCompleted, answerBasedMetrics]);
  return {
    hasGeneratingLeadsGroup,
    hasSellingProductsGroup,
    keyMetricsGroups,
    dynamicGroups
  };
}

/***/ }),

/***/ "./js/components/KeyMetrics/hooks/useNewBadgeEvents.js":
/*!*************************************************************!*\
  !*** ./js/components/KeyMetrics/hooks/useNewBadgeEvents.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ useNewBadgeEvents)
/* harmony export */ });
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/**
 * UseNewBadgeEvents hook.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */





/**
 * Returns the list of conversion events for which the "New" badge should be shown.
 *
 * Mirrors the logic previously in ChipTabGroup for computing `newBadgeEvents`.
 *
 * @since 1.163.0
 *
 * @return {Array<string>} List of events for which to show the "New" badge.
 */
function useNewBadgeEvents() {
  return (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    const isGA4Connected = select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_MODULES).isModuleConnected(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_2__.MODULE_SLUG_ANALYTICS_4);
    if (!isGA4Connected) {
      return [];
    }
    const detectedEvents = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getDetectedEvents();
    const badgeEvents = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getNewBadgeEvents();
    if (detectedEvents?.length && badgeEvents?.length) {
      const detectedLeadEvents = detectedEvents.filter(event => _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.CONVERSION_REPORTING_LEAD_EVENTS.includes(event));
      const newLeadEvents = badgeEvents.filter(event => _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.CONVERSION_REPORTING_LEAD_EVENTS.includes(event));
      const newNonLeadEvents = badgeEvents.filter(event => !_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.CONVERSION_REPORTING_LEAD_EVENTS.includes(event));
      if (detectedLeadEvents?.length > 1 && newLeadEvents.length > 0) {
        return newNonLeadEvents;
      }
    }
    return badgeEvents;
  });
}

/***/ }),

/***/ "./js/components/KeyMetrics/hooks/useOverflowingTabs.js":
/*!**************************************************************!*\
  !*** ./js/components/KeyMetrics/hooks/useOverflowingTabs.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ useOverflowingTabs)
/* harmony export */ });
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useEvent.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _js_hooks_useDebounce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/hooks/useDebounce */ "./js/hooks/useDebounce.js");
/**
 * The useOverflowingTabs hook.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


/**
 * Ensures that on small screens the last tab is visually cut off to imply
 * scroll, and wires up resize handling and open transitions.
 *
 * @since 1.163.0
 *
 * @param {Object}  args                              Arguments.
 * @param {Object}  args.containerRef                 Ref to the container element.
 * @param {boolean} args.isMobileBreakpoint           Whether current breakpoint is small.
 * @param {boolean} args.isSelectionPanelOpen         Current open state for selection panel.
 * @param {boolean} args.isSelectionPanelOpenPrevious Previous open state for selection panel.
 */
function useOverflowingTabs({
  containerRef,
  isMobileBreakpoint,
  isSelectionPanelOpen,
  isSelectionPanelOpenPrevious
}) {
  // It is not always clear that tabs are scrollable on mobile, so we need to ensure that the last tab item
  // is cutoff to indicate that there are more tabs to scroll to.
  const maybeCutOffLastTabItem = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useCallback)(() => {
    const scrollContainer = containerRef.current?.querySelector('.mdc-tab-scroller__scroll-content');
    if (!isMobileBreakpoint) {
      return;
    }
    const tabItems = containerRef.current?.querySelectorAll('.googlesitekit-chip-tab-group__tab-items .mdc-tab');
    if (!tabItems?.length || !scrollContainer) {
      return;
    }
    const containerRect = containerRef.current?.getBoundingClientRect();
    const visibleItems = [];
    tabItems.forEach((tabItem, index) => {
      const tabItemRect = tabItem.getBoundingClientRect();
      if (tabItemRect.left >= containerRect.left && tabItemRect.right <= containerRect.right) {
        visibleItems.push(index);
      }
    });
    const nextTabItem = tabItems[visibleItems.length];
    if (!nextTabItem) {
      return;
    }
    const nextTabItemRect = nextTabItem.getBoundingClientRect();

    // If the next tab item is either completely off-screen or only barely
    // visible (i.e. cut off by 15px or less, meaning most likely it is still
    // outside the visible area), reduce the column gap so that the last tab
    // item appears properly truncated.
    if (nextTabItemRect.left >= containerRect.right || nextTabItemRect.left - containerRect.right < 0 && -(nextTabItemRect.left - containerRect.right) <= 20) {
      // If there is an inline gap of 2px we already adjusted it once, and
      // the last item is still not cut off, we need to adjust the column
      // gap to 20px to ensure the last item is cut off.
      if (scrollContainer.style.columnGap === '2px') {
        scrollContainer.style.columnGap = '20px';
      } else {
        scrollContainer.style.columnGap = '2px';
      }
      maybeCutOffLastTabItem();
    }
  }, [containerRef, isMobileBreakpoint]);

  // Debounce the maybeCutOffLastTabItem function
  const debouncedMaybeCutOffLastTabItem = (0,_js_hooks_useDebounce__WEBPACK_IMPORTED_MODULE_0__.useDebounce)(maybeCutOffLastTabItem, 50);
  (0,react_use__WEBPACK_IMPORTED_MODULE_2__["default"])('resize', debouncedMaybeCutOffLastTabItem);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
    if (!isSelectionPanelOpenPrevious && isSelectionPanelOpen) {
      maybeCutOffLastTabItem();
    }
  }, [isSelectionPanelOpen, isSelectionPanelOpenPrevious, maybeCutOffLastTabItem]);
}

/***/ }),

/***/ "./js/components/KeyMetrics/index.js":
/*!*******************************************!*\
  !*** ./js/components/KeyMetrics/index.js ***!
  \*******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   ChangeMetricsLink: () => (/* reexport safe */ _ChangeMetricsLink__WEBPACK_IMPORTED_MODULE_0__["default"]),
/* harmony export */   ChipTabGroup: () => (/* reexport safe */ _ChipTabGroup__WEBPACK_IMPORTED_MODULE_8__["default"]),
/* harmony export */   InsufficientPermissionsError: () => (/* reexport safe */ _InsufficientPermissionsError__WEBPACK_IMPORTED_MODULE_1__["default"]),
/* harmony export */   KeyMetricsSetupCTAWidget: () => (/* reexport safe */ _KeyMetricsSetupCTAWidget__WEBPACK_IMPORTED_MODULE_2__["default"]),
/* harmony export */   MetricTileNumeric: () => (/* reexport safe */ _MetricTileNumeric__WEBPACK_IMPORTED_MODULE_3__["default"]),
/* harmony export */   MetricTileTable: () => (/* reexport safe */ _MetricTileTable__WEBPACK_IMPORTED_MODULE_4__["default"]),
/* harmony export */   MetricTileTablePlainText: () => (/* reexport safe */ _MetricTileTablePlainText__WEBPACK_IMPORTED_MODULE_5__["default"]),
/* harmony export */   MetricTileText: () => (/* reexport safe */ _MetricTileText__WEBPACK_IMPORTED_MODULE_6__["default"]),
/* harmony export */   MetricTileWrapper: () => (/* reexport safe */ _MetricTileWrapper__WEBPACK_IMPORTED_MODULE_7__["default"])
/* harmony export */ });
/* harmony import */ var _ChangeMetricsLink__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ChangeMetricsLink */ "./js/components/KeyMetrics/ChangeMetricsLink.js");
/* harmony import */ var _InsufficientPermissionsError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./InsufficientPermissionsError */ "./js/components/KeyMetrics/InsufficientPermissionsError.js");
/* harmony import */ var _KeyMetricsSetupCTAWidget__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./KeyMetricsSetupCTAWidget */ "./js/components/KeyMetrics/KeyMetricsSetupCTAWidget.js");
/* harmony import */ var _MetricTileNumeric__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./MetricTileNumeric */ "./js/components/KeyMetrics/MetricTileNumeric.js");
/* harmony import */ var _MetricTileTable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./MetricTileTable */ "./js/components/KeyMetrics/MetricTileTable.js");
/* harmony import */ var _MetricTileTablePlainText__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./MetricTileTablePlainText */ "./js/components/KeyMetrics/MetricTileTablePlainText.js");
/* harmony import */ var _MetricTileText__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./MetricTileText */ "./js/components/KeyMetrics/MetricTileText.js");
/* harmony import */ var _MetricTileWrapper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./MetricTileWrapper */ "./js/components/KeyMetrics/MetricTileWrapper.js");
/* harmony import */ var _ChipTabGroup__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ChipTabGroup */ "./js/components/KeyMetrics/ChipTabGroup/index.js");
/**
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */











/***/ }),

/***/ "./js/components/KeyMetrics/key-metrics-widgets.js":
/*!*********************************************************!*\
  !*** ./js/components/KeyMetrics/key-metrics-widgets.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   KEY_METRICS_WIDGETS: () => (/* binding */ KEY_METRICS_WIDGETS)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _shouldDisplayWidgetWithConversionEvent__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./shouldDisplayWidgetWithConversionEvent */ "./js/components/KeyMetrics/shouldDisplayWidgetWithConversionEvent.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./constants */ "./js/components/KeyMetrics/constants.js");
/**
 * Key Metrics widgets metadata.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */






/**
 * Determines whether to show a widget the requires Analytics 4 and AdSense to be linked.
 *
 * For admin dashboards, the widget will be shown if both modules are activate so that
 * the connection CTA can be shown if they have not been linked.
 *
 * For view-only dashboards, the widget will only be displayed if both modules are linked.
 *
 * @since 1.121.0
 *
 * @param {Object}   options                     Options object.
 * @param {Function} options.select              Data store select function.
 * @param {boolean}  options.isViewOnlyDashboard Whether the current dashboard is view only.
 * @return {boolean} Whether to display the widget.
 */
function shouldDisplayWidgetWithAnalytics4AndAdSenseLinked({
  select,
  isViewOnlyDashboard
}) {
  if (!isViewOnlyDashboard) {
    return true;
  }
  if (isViewOnlyDashboard && select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getAdSenseLinked()) {
    return true;
  }
  return false;
}

/**
 * Determines whether to display a widget that requires custom dimensions in the key
 * metrics selection panel.
 *
 * All widgets are displayed in authenticated dashboard. However, in view only dashboard,
 * widgets that require custom dimensions will only be displayed if the required custom
 * dimensions are available in the shared property.
 *
 * This function is attached to the widget object that requires the custom dimensions and
 * has the `requiredCustomDimensions` property.
 *
 * @since 1.113.0
 *
 * @param {Object}   options                     Options object.
 * @param {Function} options.select              Data store select function.
 * @param {boolean}  options.isViewOnlyDashboard Whether the current dashboard is view only.
 * @return {boolean} Whether to display the widget.
 */
function shouldDisplayWidgetWithCustomDimensions({
  select,
  isViewOnlyDashboard
}) {
  if (!isViewOnlyDashboard) {
    return true;
  }
  return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).hasCustomDimensions(
  // This property is available to the widget object that requires the
  // custom dimensions, where the function is attached.
  this.requiredCustomDimensions);
}
const KEY_METRICS_WIDGETS = {
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_ADSENSE_TOP_EARNING_CONTENT]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Top earning pages', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Pages that generated the most AdSense revenue', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Pages that generated the most AdSense revenue', 'google-site-kit'),
    displayInSelectionPanel: shouldDisplayWidgetWithAnalytics4AndAdSenseLinked,
    displayInList: shouldDisplayWidgetWithAnalytics4AndAdSenseLinked,
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_CONTENT_PERFORMANCE.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_TOP_RECENT_TRENDING_PAGES]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Top recent trending pages', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Pages with the most pageviews published in the last 3 days', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Pages with the most pageviews published in the last 3 days', 'google-site-kit'),
    requiredCustomDimensions: ['googlesitekit_post_date'],
    displayInSelectionPanel: shouldDisplayWidgetWithCustomDimensions,
    displayInWidgetArea: shouldDisplayWidgetWithCustomDimensions,
    displayInList: shouldDisplayWidgetWithCustomDimensions,
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_CONTENT_PERFORMANCE.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_POPULAR_AUTHORS]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Most popular authors by pageviews', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Authors whose posts got the most visits', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Authors whose posts got the most visits', 'google-site-kit'),
    requiredCustomDimensions: ['googlesitekit_post_author'],
    displayInSelectionPanel: shouldDisplayWidgetWithCustomDimensions,
    displayInWidgetArea: shouldDisplayWidgetWithCustomDimensions,
    displayInList: shouldDisplayWidgetWithCustomDimensions,
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_CONTENT_PERFORMANCE.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_TOP_CATEGORIES]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Top categories by pageviews', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Categories that your site visitors viewed the most', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Categories that your site visitors viewed the most', 'google-site-kit'),
    requiredCustomDimensions: ['googlesitekit_post_categories'],
    displayInSelectionPanel: shouldDisplayWidgetWithCustomDimensions,
    displayInWidgetArea: shouldDisplayWidgetWithCustomDimensions,
    displayInList: shouldDisplayWidgetWithCustomDimensions,
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_CONTENT_PERFORMANCE.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_POPULAR_CONTENT]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Most popular content by pageviews', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Pages that brought in the most visitors', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Pages your visitors read the most', 'google-site-kit'),
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_CONTENT_PERFORMANCE.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_POPULAR_PRODUCTS]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Most popular products by pageviews', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Products that brought in the most visitors', 'google-site-kit'),
    requiredCustomDimensions: ['googlesitekit_post_type'],
    displayInSelectionPanel: ({
      select
    }) => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_POPULAR_PRODUCTS) || select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_SITE).getProductPostType(),
    displayInWidgetArea: shouldDisplayWidgetWithCustomDimensions,
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_SELLING_PRODUCTS.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_PAGES_PER_VISIT]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Pages per visit', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Number of pages visitors viewed per session on average', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Number of pages visitors viewed per session on average', 'google-site-kit'),
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_VISITORS.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_VISIT_LENGTH]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Visit length', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Average duration of engaged visits', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Average duration of engaged visits', 'google-site-kit'),
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_VISITORS.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_VISITS_PER_VISITOR]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Visits per visitor', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Average number of sessions per site visitor', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Average number of sessions per site visitor', 'google-site-kit'),
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_VISITORS.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_MOST_ENGAGING_PAGES]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Most engaging pages', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Pages with the highest engagement rate', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Pages with the highest engagement rate', 'google-site-kit'),
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_CONTENT_PERFORMANCE.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_LEAST_ENGAGING_PAGES]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Least engaging pages', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Pages with the highest percentage of visitors that left without engagement with your site', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Percentage of visitors that left without engagement with your site', 'google-site-kit'),
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_CONTENT_PERFORMANCE.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_TOP_RETURNING_VISITOR_PAGES]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Top pages by returning visitors', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Pages that attracted the most returning visitors', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Pages that attracted the most returning visitors', 'google-site-kit'),
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_VISITORS.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_NEW_VISITORS]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('New visitors', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('How many new visitors you got and how the overall audience changed', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Portion of visitors who visited your site for the first time in this timeframe', 'google-site-kit'),
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_VISITORS.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_RETURNING_VISITORS]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Returning visitors', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Portion of people who visited your site more than once', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Portion of your site’s visitors that returned at least once in this timeframe', 'google-site-kit'),
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_VISITORS.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_TOP_TRAFFIC_SOURCE]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Top traffic source', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Channel which brought in the most visitors to your site', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Channel (e.g. social, paid, search) that brought in the most visitors to your site', 'google-site-kit'),
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_DRIVING_TRAFFIC.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_ADD_TO_CART]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Top traffic source driving add to cart', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Channel which brought in the most add to cart events to your site', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Channel (e.g. social, paid, search) that brought in the most add to cart events to your site', 'google-site-kit'),
    requiredConversionEventName: [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.ENUM_CONVERSION_EVENTS.ADD_TO_CART],
    displayInSelectionPanel: _shouldDisplayWidgetWithConversionEvent__WEBPACK_IMPORTED_MODULE_4__.shouldDisplayWidgetWithConversionEvent,
    displayInList: _shouldDisplayWidgetWithConversionEvent__WEBPACK_IMPORTED_MODULE_4__.shouldDisplayWidgetWithConversionEvent,
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_SELLING_PRODUCTS.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_LEADS]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Top traffic source driving leads', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Channel which brought in the most leads to your site', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Channel (e.g. social, paid, search) that brought in the most leads to your site', 'google-site-kit'),
    requiredConversionEventName: [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.ENUM_CONVERSION_EVENTS.SUBMIT_LEAD_FORM, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.ENUM_CONVERSION_EVENTS.CONTACT, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.ENUM_CONVERSION_EVENTS.GENERATE_LEAD],
    displayInSelectionPanel: _shouldDisplayWidgetWithConversionEvent__WEBPACK_IMPORTED_MODULE_4__.shouldDisplayWidgetWithConversionEvent,
    displayInList: _shouldDisplayWidgetWithConversionEvent__WEBPACK_IMPORTED_MODULE_4__.shouldDisplayWidgetWithConversionEvent,
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_GENERATING_LEADS.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_PURCHASES]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Top traffic source driving purchases', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Channel which brought in the most purchases to your site', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Channel (e.g. social, paid, search) that brought in the most purchases to your site', 'google-site-kit'),
    requiredConversionEventName: [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.ENUM_CONVERSION_EVENTS.PURCHASE],
    displayInSelectionPanel: _shouldDisplayWidgetWithConversionEvent__WEBPACK_IMPORTED_MODULE_4__.shouldDisplayWidgetWithConversionEvent,
    displayInList: _shouldDisplayWidgetWithConversionEvent__WEBPACK_IMPORTED_MODULE_4__.shouldDisplayWidgetWithConversionEvent,
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_SELLING_PRODUCTS.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_ENGAGED_TRAFFIC_SOURCE]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Most engaged traffic source', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Visitors coming via this channel spent the most time on your site', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Channel (e.g. social, paid, search) that brought in the most visitors who had a meaningful engagement with your site', 'google-site-kit'),
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_DRIVING_TRAFFIC.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_TOP_CONVERTING_TRAFFIC_SOURCE]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Top converting traffic source', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Channel which brought in the most visits that resulted in key events', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Channel (e.g. social, paid, search) that brought in visitors who generated the most key events', 'google-site-kit'),
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_DRIVING_TRAFFIC.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_TOP_CITIES]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Top cities driving traffic', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Which cities you get the most visitors from', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('The cities where most of your visitors came from', 'google-site-kit'),
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_DRIVING_TRAFFIC.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_TOP_CITIES_DRIVING_LEADS]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Top cities driving leads', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Cities driving the most contact form submissions', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Cities driving the most contact form submissions', 'google-site-kit'),
    requiredConversionEventName: [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.ENUM_CONVERSION_EVENTS.SUBMIT_LEAD_FORM, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.ENUM_CONVERSION_EVENTS.CONTACT, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.ENUM_CONVERSION_EVENTS.GENERATE_LEAD],
    displayInSelectionPanel: _shouldDisplayWidgetWithConversionEvent__WEBPACK_IMPORTED_MODULE_4__.shouldDisplayWidgetWithConversionEvent,
    displayInList: _shouldDisplayWidgetWithConversionEvent__WEBPACK_IMPORTED_MODULE_4__.shouldDisplayWidgetWithConversionEvent,
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_GENERATING_LEADS.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_TOP_CITIES_DRIVING_ADD_TO_CART]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Top cities driving add to cart', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Cities where visitors most frequently add products to their carts', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Cities where visitors most frequently add products to their carts', 'google-site-kit'),
    requiredConversionEventName: [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.ENUM_CONVERSION_EVENTS.ADD_TO_CART],
    displayInSelectionPanel: _shouldDisplayWidgetWithConversionEvent__WEBPACK_IMPORTED_MODULE_4__.shouldDisplayWidgetWithConversionEvent,
    displayInList: _shouldDisplayWidgetWithConversionEvent__WEBPACK_IMPORTED_MODULE_4__.shouldDisplayWidgetWithConversionEvent,
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_SELLING_PRODUCTS.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_TOP_CITIES_DRIVING_PURCHASES]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Top cities driving purchases', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Cities driving the most purchases', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Cities driving the most purchases', 'google-site-kit'),
    requiredConversionEventName: [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.ENUM_CONVERSION_EVENTS.PURCHASE],
    displayInSelectionPanel: _shouldDisplayWidgetWithConversionEvent__WEBPACK_IMPORTED_MODULE_4__.shouldDisplayWidgetWithConversionEvent,
    displayInList: _shouldDisplayWidgetWithConversionEvent__WEBPACK_IMPORTED_MODULE_4__.shouldDisplayWidgetWithConversionEvent,
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_SELLING_PRODUCTS.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_TOP_DEVICE_DRIVING_PURCHASES]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Top device driving purchases', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Top device driving the most purchases', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Top device driving the most purchases', 'google-site-kit'),
    requiredConversionEventName: [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.ENUM_CONVERSION_EVENTS.PURCHASE],
    displayInSelectionPanel: _shouldDisplayWidgetWithConversionEvent__WEBPACK_IMPORTED_MODULE_4__.shouldDisplayWidgetWithConversionEvent,
    displayInList: _shouldDisplayWidgetWithConversionEvent__WEBPACK_IMPORTED_MODULE_4__.shouldDisplayWidgetWithConversionEvent,
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_SELLING_PRODUCTS.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_TOP_COUNTRIES]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Top countries driving traffic', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Which countries you get the most visitors from', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('The countries where most of your visitors came from', 'google-site-kit'),
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_DRIVING_TRAFFIC.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_SEARCH_CONSOLE_POPULAR_KEYWORDS]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Top performing keywords', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('What people searched for before they came to your site', 'google-site-kit'),
    infoTooltip: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('The top search queries for your site by highest clickthrough rate', 'google-site-kit'),
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_DRIVING_TRAFFIC.SLUG
    }
  },
  [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_TOP_PAGES_DRIVING_LEADS]: {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Top pages driving leads', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Pages on which forms are most frequently submitted', 'google-site-kit'),
    requiredConversionEventName: [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.ENUM_CONVERSION_EVENTS.SUBMIT_LEAD_FORM, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.ENUM_CONVERSION_EVENTS.CONTACT, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.ENUM_CONVERSION_EVENTS.GENERATE_LEAD],
    displayInSelectionPanel: _shouldDisplayWidgetWithConversionEvent__WEBPACK_IMPORTED_MODULE_4__.shouldDisplayWidgetWithConversionEvent,
    displayInList: _shouldDisplayWidgetWithConversionEvent__WEBPACK_IMPORTED_MODULE_4__.shouldDisplayWidgetWithConversionEvent,
    metadata: {
      group: _constants__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_GROUP_GENERATING_LEADS.SLUG
    }
  }
};


/***/ }),

/***/ "./js/components/KeyMetrics/shouldDisplayWidgetWithConversionEvent.js":
/*!****************************************************************************!*\
  !*** ./js/components/KeyMetrics/shouldDisplayWidgetWithConversionEvent.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   shouldDisplayWidgetWithConversionEvent: () => (/* binding */ shouldDisplayWidgetWithConversionEvent)
/* harmony export */ });
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/**
 * Key Metrics shouldDisplayWidgetWithConversionEvent function.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */



/**
 * Determines whether to display a widget that requires conversion reporting events
 * in the key metrics selection panel.
 *
 * This function is attached to the widget object that requires the conversion reporting events and
 * has the `requiredConversionEventName` property.
 *
 * @since 1.136.0
 * @since 1.137.0 Moved function to its own file.
 *
 * @param {Object}   options        Options object.
 * @param {Function} options.select Data store select function.
 * @param {string}   options.slug   Key metric widget slug.
 * @return {boolean} Whether to display the widget.
 */
function shouldDisplayWidgetWithConversionEvent({
  select,
  slug
}) {
  return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).hasConversionReportingEvents(
  // This property is available to the widget object that requires the
  // conversion reporting events, where the function is attached.
  this.requiredConversionEventName) || select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_0__.CORE_USER).isKeyMetricActive(slug);
}

/***/ }),

/***/ "./js/components/KeyMetrics/utils.js":
/*!*******************************************!*\
  !*** ./js/components/KeyMetrics/utils.js ***!
  \*******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   conversionReportingDetectedEventsTracking: () => (/* binding */ conversionReportingDetectedEventsTracking)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/**
 * Key Metrics utility functions.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies.
 */


/**
 * Internal dependencies
 */

function conversionReportingDetectedEventsTracking({
  shouldShowInitialCalloutForTailoredMetrics,
  shouldShowCalloutForUserPickedMetrics,
  shouldShowCalloutForNewEvents,
  userPickedMetrics
}, viewContext, eventName) {
  let category = '';

  // Handle internal tracking or the initial detection of events with tailored KMW selection.
  if (shouldShowInitialCalloutForTailoredMetrics) {
    category = `${viewContext}_kmw-tailored-conversion-events-detected-notification`;
  }

  // Handle internal tracking or the initial detection of events with manual KMW selection.
  if (shouldShowCalloutForUserPickedMetrics) {
    category = `${viewContext}_kmw-manual-conversion-events-detected-notification`;
  }

  // Handle internal tracking for new events with manual KMW selection.
  if (shouldShowCalloutForNewEvents && userPickedMetrics?.length) {
    category = `${viewContext}_kmw-manual-new-conversion-events-detected-notification`;
  }

  // Handle internal tracking for new events with tailored KMW selection.
  if (shouldShowCalloutForNewEvents && !userPickedMetrics?.length) {
    category = `${viewContext}_kmw-tailored-new-conversion-events-detected-notification`;
  }
  if (category) {
    (0,_js_util__WEBPACK_IMPORTED_MODULE_0__.trackEvent)(category, eventName, 'conversion_reporting');
  }
}
conversionReportingDetectedEventsTracking.propTypes = {
  shouldShowInitialCalloutForTailoredMetrics: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().bool).isRequired,
  shouldShowCalloutForUserPickedMetrics: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().bool).isRequired,
  shouldShowCalloutForNewEvents: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().bool).isRequired,
  userPickedMetrics: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().object).isRequired,
  viewContext: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string).isRequired,
  eventName: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().string).isRequired
};

/***/ }),

/***/ "./js/components/LeanCTABanner.js":
/*!****************************************!*\
  !*** ./js/components/LeanCTABanner.js ***!
  \****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * LeanCTABanner component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


const LeanCTABanner = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.forwardRef)(({
  className,
  children,
  Icon,
  SVGGraphic
}, ref) => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
    ref: ref,
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-lean-cta-banner', className),
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
      className: "googlesitekit-lean-cta-banner__body",
      children: [Icon && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
        className: "googlesitekit-lean-cta-banner__body-icon",
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Icon, {
          width: "32",
          height: "32"
        })
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
        className: "googlesitekit-lean-cta-banner__body-content",
        children: children
      })]
    }), SVGGraphic && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
      className: "googlesitekit-lean-cta-banner__graphic",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(SVGGraphic, {})
    })]
  });
});
LeanCTABanner.propTypes = {
  className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node).isRequired,
  Icon: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().elementType),
  SVGGraphic: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().elementType)
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (LeanCTABanner);

/***/ }),

/***/ "./js/components/Link.js":
/*!*******************************!*\
  !*** ./js/components/Link.js ***!
  \*******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react-router-dom */ "../node_modules/react-router-dom/esm/react-router-dom.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _svg_icons_arrow_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/svg/icons/arrow.svg */ "./svg/icons/arrow.svg");
/* harmony import */ var _svg_icons_arrow_inverse_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/svg/icons/arrow-inverse.svg */ "./svg/icons/arrow-inverse.svg");
/* harmony import */ var _svg_icons_back_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/svg/icons/back.svg */ "./svg/icons/back.svg");
/* harmony import */ var _svg_icons_external_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/svg/icons/external.svg */ "./svg/icons/external.svg");
/* harmony import */ var _IconWrapper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./IconWrapper */ "./js/components/IconWrapper.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Link component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */




/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */






const BUTTON = 'BUTTON';
const BUTTON_DISABLED = 'BUTTON_DISABLED';
const EXTERNAL_LINK = 'EXTERNAL_LINK';
const LINK = 'LINK';
const ROUTER_LINK = 'ROUTER_LINK';
const Link = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.forwardRef)((props, ref) => {
  const {
    'aria-label': ariaLabelProp,
    secondary = false,
    arrow = false,
    back = false,
    caps = false,
    children,
    className = '',
    danger = false,
    disabled = false,
    external = false,
    hideExternalIndicator = false,
    href = '',
    inverse = false,
    noFlex = false,
    onClick,
    small = false,
    standalone = false,
    linkButton = false,
    to,
    leadingIcon,
    trailingIcon,
    ...otherProps
  } = props;
  function getType() {
    // Force button element if `onClick` prop is passed and there's no `href`
    // or `to` prop.
    if (!href && !to && onClick) {
      if (disabled) {
        return BUTTON_DISABLED;
      }
      return BUTTON;
    }

    // Only `RouterLink` uses the `to` prop.
    if (to) {
      return ROUTER_LINK;
    }

    // The external prop means this is an external link, which will also output
    // an `<a>` tag.
    if (external) {
      return EXTERNAL_LINK;
    }

    // A regular `<a>` tag without external indicators.
    return LINK;
  }
  const type = getType();
  function getLinkComponent() {
    if (type === BUTTON || type === BUTTON_DISABLED) {
      return 'button';
    }
    if (type === ROUTER_LINK) {
      return react_router_dom__WEBPACK_IMPORTED_MODULE_9__.Link;
    }
    return 'a';
  }
  function getAriaLabel() {
    // Otherwise, create an ARIA label if the link opens in a new window
    // or is disabled, to add extra context to the link.
    let labelSuffix;
    if (type === EXTERNAL_LINK) {
      labelSuffix = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__._x)('(opens in a new tab)', 'screen reader text', 'google-site-kit');
    }
    if (type === BUTTON_DISABLED) {
      labelSuffix = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__._x)('(disabled)', 'screen reader text', 'google-site-kit');
    }
    if (!labelSuffix) {
      return ariaLabelProp;
    }

    // If an ARIA label was supplied, use that.
    if (ariaLabelProp) {
      return `${ariaLabelProp} ${labelSuffix}`;
    }

    // Otherwise, use the children prop if it's a string.
    if (typeof children === 'string') {
      return `${children} ${labelSuffix}`;
    }

    // If there isn't a string we can use to create the label, we shouldn't
    // make one; otherwise we'll only create an ARIA label that says
    // "(opens in a new tab)", which is not good.
    return undefined;
  }
  const LinkComponent = getLinkComponent();
  const ariaLabel = getAriaLabel();

  // Set the prefix/suffix icons, based on the type of link this is and
  // the props supplied.
  let leadingIconToUse = leadingIcon;
  let trailingIconToUse = trailingIcon;
  if (back) {
    leadingIconToUse = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_svg_icons_back_svg__WEBPACK_IMPORTED_MODULE_4__["default"], {
      width: 14,
      height: 14
    });
  }
  if (external && !hideExternalIndicator) {
    trailingIconToUse = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_svg_icons_external_svg__WEBPACK_IMPORTED_MODULE_5__["default"], {
      width: 14,
      height: 14
    });
  }
  if (arrow && !inverse) {
    trailingIconToUse = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_svg_icons_arrow_svg__WEBPACK_IMPORTED_MODULE_2__["default"], {
      width: 14,
      height: 14
    });
  }
  if (arrow && inverse) {
    trailingIconToUse = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_svg_icons_arrow_inverse_svg__WEBPACK_IMPORTED_MODULE_3__["default"], {
      width: 14,
      height: 14
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(LinkComponent, {
    "aria-label": ariaLabel,
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-cta-link', className, {
      'googlesitekit-cta-link--secondary': secondary,
      'googlesitekit-cta-link--inverse': inverse,
      'googlesitekit-cta-link--small': small,
      'googlesitekit-cta-link--caps': caps,
      'googlesitekit-cta-link--danger': danger,
      'googlesitekit-cta-link--disabled': disabled,
      'googlesitekit-cta-link--standalone': standalone,
      'googlesitekit-cta-link--link-button': linkButton,
      'googlesitekit-cta-link--no-flex': !!noFlex
    }),
    disabled: disabled,
    href: (type === LINK || type === EXTERNAL_LINK) && !disabled ? href : undefined,
    onClick: onClick,
    rel: type === EXTERNAL_LINK ? 'noopener noreferrer' : undefined,
    ref: ref,
    target: type === EXTERNAL_LINK ? '_blank' : undefined,
    to: to,
    ...otherProps,
    children: [!!leadingIconToUse && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_IconWrapper__WEBPACK_IMPORTED_MODULE_6__["default"], {
      marginRight: 5,
      children: leadingIconToUse
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("span", {
      className: "googlesitekit-cta-link__contents",
      children: children
    }), !!trailingIconToUse && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_IconWrapper__WEBPACK_IMPORTED_MODULE_6__["default"], {
      marginLeft: 5,
      children: trailingIconToUse
    })]
  });
});
Link.propTypes = {
  arrow: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().bool),
  back: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().bool),
  caps: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().bool),
  children: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().node),
  className: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().string),
  danger: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().bool),
  disabled: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().bool),
  external: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().bool),
  hideExternalIndicator: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().bool),
  href: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().string),
  inverse: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().bool),
  leadingIcon: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().node),
  linkButton: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().bool),
  noFlex: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().bool),
  onClick: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().func),
  small: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().bool),
  standalone: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().bool),
  to: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().string),
  trailingIcon: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().node)
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Link);

/***/ }),

/***/ "./js/components/LoadingWrapper.js":
/*!*****************************************!*\
  !*** ./js/components/LoadingWrapper.js ***!
  \*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ LoadingWrapper)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _PreviewBlock__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PreviewBlock */ "./js/components/PreviewBlock.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * LoadingWrapper component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */


function LoadingWrapper({
  loading,
  children,
  ...previewBlockProps
}) {
  if (loading) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_PreviewBlock__WEBPACK_IMPORTED_MODULE_0__["default"], {
      ...previewBlockProps
    });
  }
  return children;
}
LoadingWrapper.propTypes = {
  loading: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),
  children: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().node),
  ..._PreviewBlock__WEBPACK_IMPORTED_MODULE_0__["default"].propTypes
};

/***/ }),

/***/ "./js/components/MediaErrorHandler/index.js":
/*!**************************************************!*\
  !*** ./js/components/MediaErrorHandler/index.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_components_ErrorNotice__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/ErrorNotice */ "./js/components/ErrorNotice.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * MediaErrorHandler component.
 *
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


class MediaErrorHandler extends _wordpress_element__WEBPACK_IMPORTED_MODULE_3__.Component {
  constructor(props) {
    super(props);
    this.state = {
      error: null
    };
  }
  componentDidCatch(error, info) {
    __webpack_require__.g.console.error('Caught an error:', error, info);
    this.setState({
      error
    });
  }
  render() {
    const {
      children,
      errorMessage
    } = this.props;
    const {
      error
    } = this.state;

    // If there is no caught error, render the children components normally.
    if (!error) {
      return children;
    }
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_js_components_ErrorNotice__WEBPACK_IMPORTED_MODULE_1__["default"], {
      message: errorMessage
    });
  }
}
MediaErrorHandler.defaultProps = {
  errorMessage: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Failed to load media', 'google-site-kit')
};
MediaErrorHandler.propTypes = {
  children: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().node).isRequired,
  errorMessage: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MediaErrorHandler);

/***/ }),

/***/ "./js/components/ModalDialog.js":
/*!**************************************!*\
  !*** ./js/components/ModalDialog.js ***!
  \**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/compose */ "../node_modules/@wordpress/compose/build-module/hooks/use-instance-id/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _svg_icons_warning_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/svg/icons/warning.svg */ "./svg/icons/warning.svg");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * ModalDialog component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */



function ModalDialog({
  className = '',
  dialogActive = false,
  handleCancel = null,
  onOpen = null,
  onClose = null,
  title = null,
  provides,
  handleConfirm,
  subtitle,
  confirmButton = null,
  notes = [],
  danger = false,
  inProgress = false,
  small = false,
  medium = false,
  buttonLink = null
}) {
  const instanceID = (0,_wordpress_compose__WEBPACK_IMPORTED_MODULE_5__["default"])(ModalDialog);
  const describedByID = `googlesitekit-dialog-description-${instanceID}`;
  const hasProvides = !!(provides && provides.length);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.Dialog, {
    open: dialogActive,
    onOpen: onOpen,
    onClose: onClose,
    "aria-describedby": hasProvides ? describedByID : undefined,
    tabIndex: "-1",
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()(className, {
      'googlesitekit-dialog-sm': small,
      'googlesitekit-dialog-md': medium
    }),
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.DialogTitle, {
      children: [danger && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_svg_icons_warning_svg__WEBPACK_IMPORTED_MODULE_3__["default"], {
        width: 28,
        height: 28
      }), title]
    }),
    // Ensure we don't render anything at all if subtitle is falsy, as Dialog expects all its children to be elements and a falsy value will result in an error.
    subtitle ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("p", {
      className: "mdc-dialog__lead",
      children: subtitle
    }) : [], /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.DialogContent, {
      children: [hasProvides && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("section", {
        id: describedByID,
        className: "mdc-dialog__provides",
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("ul", {
          className: "mdc-list mdc-list--underlined mdc-list--non-interactive",
          children: provides.map(attribute => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("li", {
            className: "mdc-list-item",
            children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", {
              className: "mdc-list-item__text",
              children: attribute
            })
          }, attribute))
        })
      }), notes.length > 0 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("section", {
        className: "mdc-dialog__notes",
        children: notes.map((Note, index) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("p", {
          className: "mdc-dialog__note",
          children: [typeof Note === 'string' && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.sprintf)(/* translators: %s is replaced with some sub-note text. */
          (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('<strong>Note:</strong> %s', 'google-site-kit'), Note), {
            strong: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("strong", {})
          }), typeof Note === 'function' && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(Note, {})]
        }, `note-${index}`))
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.DialogFooter, {
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.Button, {
        className: "mdc-dialog__cancel-button",
        onClick: handleCancel,
        disabled: inProgress,
        tertiary: true,
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Cancel', 'google-site-kit')
      }), buttonLink ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.Button, {
        href: buttonLink,
        onClick: handleConfirm,
        target: "_blank",
        danger: danger,
        children: confirmButton
      }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.SpinnerButton, {
        onClick: handleConfirm,
        danger: danger,
        disabled: inProgress,
        isSaving: inProgress,
        children: confirmButton || (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Disconnect', 'google-site-kit')
      })]
    })]
  });
}
ModalDialog.displayName = 'Dialog';
ModalDialog.propTypes = {
  className: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string),
  dialogActive: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().bool),
  handleDialog: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().func),
  handleConfirm: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().func).isRequired,
  onOpen: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().func),
  onClose: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().func),
  title: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string),
  provides: prop_types__WEBPACK_IMPORTED_MODULE_7___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_7___default().string)),
  confirmButton: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string),
  notes: prop_types__WEBPACK_IMPORTED_MODULE_7___default().arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_7___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_7___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_7___default().elementType)])),
  danger: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().bool),
  small: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().bool),
  medium: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().bool),
  buttonLink: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string)
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ModalDialog);

/***/ }),

/***/ "./js/components/NewBadge.js":
/*!***********************************!*\
  !*** ./js/components/NewBadge.js ***!
  \***********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _Badge__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Badge */ "./js/components/Badge.js");
/* harmony import */ var _Link__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Link */ "./js/components/Link.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * NewBadge component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */




function NewBadge({
  tooltipTitle,
  learnMoreLink,
  forceOpen,
  hasLeftSpacing,
  hasNoSpacing,
  onLearnMoreClick = () => {}
}) {
  const badgeComponent = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_Badge__WEBPACK_IMPORTED_MODULE_3__["default"], {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-new-badge', {
      'googlesitekit-new-badge--has-no-spacing': hasNoSpacing
    }),
    label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('New', 'google-site-kit'),
    hasLeftSpacing: hasLeftSpacing
  });
  if (!tooltipTitle) {
    return badgeComponent;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.Tooltip, {
    tooltipClassName: "googlesitekit-new-badge__tooltip",
    title: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__.Fragment, {
      children: [tooltipTitle, /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("br", {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_Link__WEBPACK_IMPORTED_MODULE_4__["default"], {
        href: learnMoreLink,
        onClick: onLearnMoreClick,
        external: true,
        hideExternalIndicator: true,
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Learn more', 'google-site-kit')
      })]
    }),
    placement: "top",
    enterTouchDelay: 0,
    leaveTouchDelay: 5000,
    open: forceOpen,
    interactive: true,
    children: badgeComponent
  });
}
NewBadge.propTypes = {
  tooltipTitle: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string),
  learnMoreLink: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string),
  forceOpen: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().bool),
  onLearnMoreClick: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().func),
  hasLeftSpacing: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().bool),
  hasNoSpacing: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().bool)
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NewBadge);

/***/ }),

/***/ "./js/components/Notice/CTAButton.js":
/*!*******************************************!*\
  !*** ./js/components/Notice/CTAButton.js ***!
  \*******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ CTAButton)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _svg_icons_external_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/svg/icons/external.svg */ "./svg/icons/external.svg");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Internal dependencies
 */



function CTAButton({
  label,
  disabled,
  inProgress,
  onClick,
  href,
  external = false,
  hideExternalIndicator = false
}) {
  let trailingIconToUse;
  if (external && !hideExternalIndicator) {
    trailingIconToUse = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_svg_icons_external_svg__WEBPACK_IMPORTED_MODULE_2__["default"], {
      width: 14,
      height: 14
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.SpinnerButton, {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-notice__cta', {
      'googlesitekit-notice__cta--spinner__running': inProgress
    }),
    disabled: disabled,
    isSaving: inProgress,
    onClick: onClick,
    href: href,
    target: external ? '_blank' : undefined,
    trailingIcon: trailingIconToUse,
    children: label
  });
}
CTAButton.propTypes = {
  label: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,
  disabled: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().bool),
  inProgress: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().bool),
  onClick: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func),
  href: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string),
  external: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().bool),
  hideExternalIndicator: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().bool)
};

/***/ }),

/***/ "./js/components/Notice/Description.js":
/*!*********************************************!*\
  !*** ./js/components/Notice/Description.js ***!
  \*********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Description)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



function Description({
  className,
  children
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("p", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-notice__description', className),
    children: children
  });
}
Description.propTypes = {
  className: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),
  children: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().node)
};

/***/ }),

/***/ "./js/components/Notice/DismissButton.js":
/*!***********************************************!*\
  !*** ./js/components/Notice/DismissButton.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ DismissButton)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


function DismissButton({
  label = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Got it', 'google-site-kit'),
  onClick,
  disabled
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.Button, {
    onClick: onClick,
    disabled: disabled,
    tertiary: true,
    children: label
  });
}
DismissButton.propTypes = {
  label: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  onClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func).isRequired,
  disabled: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool)
};

/***/ }),

/***/ "./js/components/Notice/Icon.js":
/*!**************************************!*\
  !*** ./js/components/Notice/Icon.js ***!
  \**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Icon)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _svg_icons_check_fill_svg__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/svg/icons/check-fill.svg */ "./svg/icons/check-fill.svg");
/* harmony import */ var _svg_icons_warning_notice_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/svg/icons/warning-notice.svg */ "./svg/icons/warning-notice.svg");
/* harmony import */ var _svg_icons_star_fill_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/svg/icons/star-fill.svg */ "./svg/icons/star-fill.svg");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants */ "./js/components/Notice/constants.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */





const typeIconMap = {
  [_constants__WEBPACK_IMPORTED_MODULE_3__.TYPES.NEW]: _svg_icons_star_fill_svg__WEBPACK_IMPORTED_MODULE_2__["default"],
  [_constants__WEBPACK_IMPORTED_MODULE_3__.TYPES.SUCCESS]: _svg_icons_check_fill_svg__WEBPACK_IMPORTED_MODULE_0__["default"],
  [_constants__WEBPACK_IMPORTED_MODULE_3__.TYPES.INFO]: _svg_icons_warning_notice_svg__WEBPACK_IMPORTED_MODULE_1__["default"],
  [_constants__WEBPACK_IMPORTED_MODULE_3__.TYPES.WARNING]: _svg_icons_warning_notice_svg__WEBPACK_IMPORTED_MODULE_1__["default"],
  [_constants__WEBPACK_IMPORTED_MODULE_3__.TYPES.ERROR]: _svg_icons_warning_notice_svg__WEBPACK_IMPORTED_MODULE_1__["default"]
};
function Icon({
  type
}) {
  const IconComponent = typeIconMap[type] || _svg_icons_warning_notice_svg__WEBPACK_IMPORTED_MODULE_1__["default"];
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(IconComponent, {
    width: 24,
    height: 24
  });
}
Icon.propTypes = {
  type: prop_types__WEBPACK_IMPORTED_MODULE_5___default().oneOf(Object.values(_constants__WEBPACK_IMPORTED_MODULE_3__.TYPES))
};

/***/ }),

/***/ "./js/components/Notice/Title.js":
/*!***************************************!*\
  !*** ./js/components/Notice/Title.js ***!
  \***************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Title)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



function Title({
  className,
  children
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("p", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-notice__title', className),
    children: children
  });
}
Title.propTypes = {
  className: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),
  children: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().node)
};

/***/ }),

/***/ "./js/components/Notice/constants.js":
/*!*******************************************!*\
  !*** ./js/components/Notice/constants.js ***!
  \*******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   TYPES: () => (/* binding */ TYPES)
/* harmony export */ });
/**
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const TYPES = {
  NEW: 'new',
  SUCCESS: 'success',
  WARNING: 'warning',
  INFO: 'info',
  INFO_ALT: 'info-alt',
  ERROR: 'error'
};

/***/ }),

/***/ "./js/components/Notice/index.js":
/*!***************************************!*\
  !*** ./js/components/Notice/index.js ***!
  \***************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _Icon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Icon */ "./js/components/Notice/Icon.js");
/* harmony import */ var _Title__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Title */ "./js/components/Notice/Title.js");
/* harmony import */ var _Description__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Description */ "./js/components/Notice/Description.js");
/* harmony import */ var _CTAButton__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./CTAButton */ "./js/components/Notice/CTAButton.js");
/* harmony import */ var _DismissButton__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./DismissButton */ "./js/components/Notice/DismissButton.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./constants */ "./js/components/Notice/constants.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */







const Notice = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.forwardRef)(({
  className,
  title,
  description,
  dismissButton,
  ctaButton,
  type = _constants__WEBPACK_IMPORTED_MODULE_6__.TYPES.INFO,
  children,
  hideIcon
}, ref) => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)("div", {
    ref: ref,
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-notice', `googlesitekit-notice--${type}`, className),
    children: [!hideIcon && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", {
      className: "googlesitekit-notice__icon",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_Icon__WEBPACK_IMPORTED_MODULE_1__["default"], {
        type: type
      })
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)("div", {
      className: "googlesitekit-notice__content",
      children: [title && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_Title__WEBPACK_IMPORTED_MODULE_2__["default"], {
        children: title
      }), description && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_Description__WEBPACK_IMPORTED_MODULE_3__["default"], {
        children: description
      })]
    }), (dismissButton?.label || dismissButton?.onClick || ctaButton?.label && (ctaButton?.onClick || ctaButton?.href) || children) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)("div", {
      className: "googlesitekit-notice__action",
      children: [children, (dismissButton?.label || dismissButton?.onClick) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_DismissButton__WEBPACK_IMPORTED_MODULE_5__["default"], {
        label: dismissButton.label,
        onClick: dismissButton.onClick,
        disabled: dismissButton.disabled
      }), ctaButton?.label && (ctaButton?.onClick || ctaButton?.href) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_CTAButton__WEBPACK_IMPORTED_MODULE_4__["default"], {
        label: ctaButton.label,
        onClick: ctaButton.onClick,
        inProgress: ctaButton.inProgress,
        disabled: ctaButton.disabled,
        href: ctaButton.href,
        external: ctaButton.external,
        hideExternalIndicator: ctaButton.hideExternalIndicator
      })]
    })]
  });
});
Notice.TYPES = _constants__WEBPACK_IMPORTED_MODULE_6__.TYPES;
Notice.propTypes = {
  className: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string),
  title: prop_types__WEBPACK_IMPORTED_MODULE_9___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_9___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_9___default().object)]),
  description: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().node),
  type: prop_types__WEBPACK_IMPORTED_MODULE_9___default().oneOf(Object.values(_constants__WEBPACK_IMPORTED_MODULE_6__.TYPES)),
  dismissButton: prop_types__WEBPACK_IMPORTED_MODULE_9___default().shape(_DismissButton__WEBPACK_IMPORTED_MODULE_5__["default"].propTypes),
  ctaButton: prop_types__WEBPACK_IMPORTED_MODULE_9___default().shape({
    ..._CTAButton__WEBPACK_IMPORTED_MODULE_4__["default"].propTypes,
    label: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string) // CTAButton label should not be required for this parent component.
  }),
  children: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().node),
  hideIcon: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().bool)
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Notice);

/***/ }),

/***/ "./js/components/Null.js":
/*!*******************************!*\
  !*** ./js/components/Null.js ***!
  \*******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Null)
/* harmony export */ });
/**
 * Null component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

function Null() {
  return null;
}

/***/ }),

/***/ "./js/components/OverlayCard/Body.js":
/*!*******************************************!*\
  !*** ./js/components/OverlayCard/Body.js ***!
  \*******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Body)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/hooks/useBreakpoint */ "./js/hooks/useBreakpoint.ts");
/* harmony import */ var _Title__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Title */ "./js/components/OverlayCard/Title.js");
/* harmony import */ var _Description__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Description */ "./js/components/OverlayCard/Description.js");
/* harmony import */ var _DismissButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./DismissButton */ "./js/components/OverlayCard/DismissButton.js");
/* harmony import */ var _CTAButton__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./CTAButton */ "./js/components/OverlayCard/CTAButton.js");
/* harmony import */ var _js_components_NewBadge__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/NewBadge */ "./js/components/NewBadge.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * OverlayCard Body component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */







function Body({
  title,
  description,
  ctaButton,
  dismissButton,
  GraphicDesktop,
  GraphicMobile,
  newBadge
}) {
  const breakpoint = (0,_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_0__.useBreakpoint)();
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__.Fragment, {
    children: [breakpoint !== _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_0__.BREAKPOINT_SMALL && GraphicDesktop && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
      className: "googlesitekit-overlay-card__graphic",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(GraphicDesktop, {})
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      className: "googlesitekit-overlay-card__body",
      children: [newBadge && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
        className: "googlesitekit-overlay-card__badge",
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_js_components_NewBadge__WEBPACK_IMPORTED_MODULE_5__["default"], {
          hasNoSpacing: true
        })
      }), title && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Title__WEBPACK_IMPORTED_MODULE_1__["default"], {
        children: title
      }), description && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_Description__WEBPACK_IMPORTED_MODULE_2__["default"], {
        children: description
      })]
    }), (ctaButton || dismissButton) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      className: "googlesitekit-overlay-card__actions",
      children: [dismissButton && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_DismissButton__WEBPACK_IMPORTED_MODULE_3__["default"], {
        ...dismissButton
      }), ctaButton && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_CTAButton__WEBPACK_IMPORTED_MODULE_4__["default"], {
        ...ctaButton
      })]
    }), breakpoint === _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_0__.BREAKPOINT_SMALL && GraphicMobile && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(GraphicMobile, {})]
  });
}
Body.propTypes = {
  title: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().node),
  description: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().node),
  ctaButton: prop_types__WEBPACK_IMPORTED_MODULE_8___default().shape({
    ..._DismissButton__WEBPACK_IMPORTED_MODULE_3__.buttonProps,
    href: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().string),
    target: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().string),
    trailingIcon: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().element)
  }),
  dismissButton: prop_types__WEBPACK_IMPORTED_MODULE_8___default().shape({
    ..._DismissButton__WEBPACK_IMPORTED_MODULE_3__.buttonProps
  }),
  GraphicDesktop: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().elementType),
  GraphicMobile: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().elementType),
  newBadge: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool)
};

/***/ }),

/***/ "./js/components/OverlayCard/CTAButton.js":
/*!************************************************!*\
  !*** ./js/components/OverlayCard/CTAButton.js ***!
  \************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ CTAButton)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _DismissButton__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DismissButton */ "./js/components/OverlayCard/DismissButton.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * OverlayCard CTAButton component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */



function CTAButton(props) {
  const {
    label,
    ...otherProps
  } = props;
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_0__.Button, {
    ...otherProps,
    children: label
  });
}
CTAButton.propTypes = {
  ..._DismissButton__WEBPACK_IMPORTED_MODULE_1__.buttonProps,
  href: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  target: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  trailingIcon: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object)
};

/***/ }),

/***/ "./js/components/OverlayCard/Description.js":
/*!**************************************************!*\
  !*** ./js/components/OverlayCard/Description.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Description)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * OverlayCard Description component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


function Description({
  children
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("p", {
    className: "googlesitekit-overlay-card__description",
    children: children
  });
}
Description.propTypes = {
  children: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().node).isRequired
};

/***/ }),

/***/ "./js/components/OverlayCard/DismissButton.js":
/*!****************************************************!*\
  !*** ./js/components/OverlayCard/DismissButton.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   buttonProps: () => (/* binding */ buttonProps),
/* harmony export */   "default": () => (/* binding */ DismissButton)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * OverlayCard DismissButton component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


function DismissButton({
  label = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Maybe later', 'google-site-kit'),
  onClick,
  disabled
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.Button, {
    onClick: onClick,
    disabled: disabled,
    tertiary: true,
    children: label
  });
}
const buttonProps = {
  label: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  onClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),
  disabled: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool)
};
DismissButton.propTypes = buttonProps;

/***/ }),

/***/ "./js/components/OverlayCard/Title.js":
/*!********************************************!*\
  !*** ./js/components/OverlayCard/Title.js ***!
  \********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Title)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_components_Typography__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/components/Typography */ "./js/components/Typography/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * OverlayCard Title component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



function Title({
  children
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_0__["default"], {
    as: "h3",
    size: "medium",
    type: "title",
    className: "googlesitekit-overlay-card__title",
    children: children
  });
}
Title.propTypes = {
  children: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().node).isRequired
};

/***/ }),

/***/ "./js/components/OverlayCard/index.js":
/*!********************************************!*\
  !*** ./js/components/OverlayCard/index.js ***!
  \********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ OverlayCard)
/* harmony export */ });
/* harmony import */ var _material_ui_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material-ui/core */ "../node_modules/@material-ui/core/esm/Slide/Slide.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/hooks/useBreakpoint */ "./js/hooks/useBreakpoint.ts");
/* harmony import */ var _Body__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Body */ "./js/components/OverlayCard/Body.js");
/* harmony import */ var _DismissButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./DismissButton */ "./js/components/OverlayCard/DismissButton.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * OverlayCard component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */




/**
 * Internal dependencies
 */




function OverlayCard(props) {
  const {
    visible,
    className,
    ...cardProps
  } = props;
  const breakpoint = (0,_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_1__.useBreakpoint)();
  if (!visible) {
    return null;
  }
  const body = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("div", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-overlay-card', className),
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_Body__WEBPACK_IMPORTED_MODULE_2__["default"], {
      ...cardProps
    })
  });
  if (breakpoint === _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_1__.BREAKPOINT_SMALL) {
    return body;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_material_ui_core__WEBPACK_IMPORTED_MODULE_5__["default"], {
    direction: "up",
    in: visible,
    children: body
  });
}
OverlayCard.propTypes = {
  className: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().string),
  title: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().string),
  description: prop_types__WEBPACK_IMPORTED_MODULE_6___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_6___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_6___default().object)]),
  ctaButton: prop_types__WEBPACK_IMPORTED_MODULE_6___default().shape({
    ..._DismissButton__WEBPACK_IMPORTED_MODULE_3__.buttonProps,
    href: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().string),
    target: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().string),
    trailingIcon: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().object)
  }),
  dismissButton: prop_types__WEBPACK_IMPORTED_MODULE_6___default().shape(_DismissButton__WEBPACK_IMPORTED_MODULE_3__.buttonProps),
  GraphicDesktop: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().elementType),
  GraphicMobile: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().elementType),
  newBadge: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().bool),
  visible: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().bool)
};
OverlayCard.defaultProps = {
  visible: false
};

/***/ }),

/***/ "./js/components/Portal.js":
/*!*********************************!*\
  !*** ./js/components/Portal.js ***!
  \*********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useEffectOnce.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react-dom/index.js");
/**
 * Portal component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */

function Portal({
  children,
  slug
}) {
  // Using state as we need `el` to not change when the component re-renders
  const [el] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(document.createElement('div'));
  (0,react_use__WEBPACK_IMPORTED_MODULE_1__["default"])(() => {
    if (slug) {
      el.classList.add(`googlesitekit-portal-${slug}`);
    }
    const root = document.querySelector('.googlesitekit-plugin') || document.body;
    root.appendChild(el);
    return () => root.removeChild(el);
  });
  return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.createPortal)(children, el);
}
Portal.propTypes = {
  slug: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node)
};
Portal.defaultProps = {
  slug: '',
  children: null
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Portal);

/***/ }),

/***/ "./js/components/PreviewBlock.js":
/*!***************************************!*\
  !*** ./js/components/PreviewBlock.js ***!
  \***************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/hooks/useBreakpoint */ "./js/hooks/useBreakpoint.ts");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * PreviewBlock component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Internal dependencies
 */


function PreviewBlock({
  className,
  width,
  height,
  shape,
  padding,
  smallWidth,
  smallHeight,
  tabletWidth,
  tabletHeight,
  desktopWidth,
  desktopHeight
}) {
  const breakpoint = (0,_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_1__.useBreakpoint)();
  const blockDimensions = {
    width: {
      [_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_1__.BREAKPOINT_SMALL]: smallWidth,
      [_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_1__.BREAKPOINT_TABLET]: tabletWidth,
      [_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_1__.BREAKPOINT_DESKTOP]: desktopWidth,
      [_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_1__.BREAKPOINT_XLARGE]: desktopWidth
    },
    height: {
      [_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_1__.BREAKPOINT_SMALL]: smallHeight,
      [_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_1__.BREAKPOINT_TABLET]: tabletHeight,
      [_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_1__.BREAKPOINT_DESKTOP]: desktopHeight,
      [_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_1__.BREAKPOINT_XLARGE]: desktopWidth
    }
  };
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-preview-block', className, {
      'googlesitekit-preview-block--padding': padding
    }),
    style: {
      width: blockDimensions.width[breakpoint] || width,
      height: blockDimensions.height[breakpoint] || height
    },
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", {
      className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-preview-block__wrapper', {
        'googlesitekit-preview-block__wrapper--circle': shape === 'circular'
      })
    })
  });
}
PreviewBlock.propTypes = {
  className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  width: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  height: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  shape: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  padding: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),
  smallWidth: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  smallHeight: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  tabletWidth: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  tabletHeight: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  desktopWidth: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  desktopHeight: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string)
};
PreviewBlock.defaultProps = {
  className: undefined,
  width: '100px',
  height: '100px',
  shape: 'square',
  padding: false,
  smallWidth: undefined,
  smallHeight: undefined,
  tabletWidth: undefined,
  tabletHeight: undefined,
  desktopWidth: undefined,
  desktopHeight: undefined
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PreviewBlock);

/***/ }),

/***/ "./js/components/PreviewTable.js":
/*!***************************************!*\
  !*** ./js/components/PreviewTable.js ***!
  \***************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _PreviewBlock__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PreviewBlock */ "./js/components/PreviewBlock.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * PreviewTable component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Internal dependencies
 */


function PreviewTable({
  rows,
  rowHeight,
  padding
}) {
  const rowData = [];
  for (let x = 0; rows > x; x++) {
    rowData.push(/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", {
      className: "googlesitekit-preview-table__row",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_PreviewBlock__WEBPACK_IMPORTED_MODULE_1__["default"], {
        width: "100%",
        height: rowHeight + 'px'
      })
    }, 'table-row-' + x));
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-preview-table', {
      'googlesitekit-preview-table--padding': padding
    }),
    children: rowData
  });
}
PreviewTable.propTypes = {
  rows: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),
  rowHeight: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),
  padding: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool)
};
PreviewTable.defaultProps = {
  rows: 11,
  rowHeight: 35,
  padding: false
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (PreviewTable);

/***/ }),

/***/ "./js/components/RecoverableModules.js":
/*!*********************************************!*\
  !*** ./js/components/RecoverableModules.js ***!
  \*********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ RecoverableModules)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _notifications_CTA__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./notifications/CTA */ "./js/components/notifications/CTA.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * RecoverableModules component.
 *
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */




function RecoverableModules({
  moduleSlugs
}) {
  const moduleNames = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    const modules = select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_MODULES).getModules();
    if (modules === undefined) {
      return undefined;
    }
    return moduleSlugs.map(moduleSlug => modules[moduleSlug].name);
  });
  if (moduleNames === undefined) {
    return null;
  }
  const description = moduleNames.length === 1 ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: Module name */
  (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('%s data was previously shared by an admin who no longer has access. Please contact another admin to restore it.', 'google-site-kit'), moduleNames[0]) : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: List of module names */
  (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('The data for the following modules was previously shared by an admin who no longer has access: %s. Please contact another admin to restore it.', 'google-site-kit'), moduleNames.join((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__._x)(', ', 'Recoverable modules', 'google-site-kit')));
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_notifications_CTA__WEBPACK_IMPORTED_MODULE_3__["default"], {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Data Unavailable', 'google-site-kit'),
    description: description
  });
}
RecoverableModules.propTypes = {
  moduleSlugs: prop_types__WEBPACK_IMPORTED_MODULE_5___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_5___default().string)).isRequired
};

/***/ }),

/***/ "./js/components/RefocusableModalDialog.js":
/*!*************************************************!*\
  !*** ./js/components/RefocusableModalDialog.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/compose */ "../node_modules/@wordpress/compose/build-module/hooks/use-previous/index.js");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ModalDialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ModalDialog */ "./js/components/ModalDialog.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * ModalDialog component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



// Use a singleton variable to store the clicked element before any dialog opens.
// We need to do this at the module level since the component may not be mounted
// when the user initiates an action that will open the dialog.

let previouslyClickedElement = null;

// Set up a global event listener to capture the clicked element before any dialog opens.
// This needs to happen at the module level to ensure it's set up before any user interaction.
function setupFocusTracker() {
  if (typeof __webpack_require__.g === 'undefined' || !__webpack_require__.g.document || __webpack_require__.g._googlesitekitModalFocusTrackerInitialized) {
    return;
  }
  function captureActiveElementOnClick(event) {
    // Store the clicked (or keyboard-activated) element when user clicks.
    // This will be the element that was clicked right before the dialog opens.
    const nearestParentButtonOrAnchor = event.target.closest('button, a, input');
    if (nearestParentButtonOrAnchor && !nearestParentButtonOrAnchor.classList.contains('mdc-dialog__cancel-button')) {
      previouslyClickedElement = nearestParentButtonOrAnchor;
    }
  }
  __webpack_require__.g.document.addEventListener('mousedown', captureActiveElementOnClick);
  __webpack_require__.g.document.addEventListener('keydown', event => {
    if (event.key === 'Enter' || event.key === ' ') {
      captureActiveElementOnClick(event);
    }
  });
  __webpack_require__.g._googlesitekitModalFocusTrackerInitialized = true;
}
setupFocusTracker();
function RefocusableModalDialog({
  dialogActive = false,
  refocusQuerySelector = null,
  ...modalDialogProps
}) {
  const handleElementRefocus = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useCallback)(() => {
    setTimeout(() => {
      const elementToFocus = refocusQuerySelector ? document.querySelector(refocusQuerySelector) : previouslyClickedElement;
      if (elementToFocus && document.body.contains(elementToFocus)) {
        elementToFocus.focus();
      }
      if (!refocusQuerySelector) {
        previouslyClickedElement = null;
      }
    });
  }, [refocusQuerySelector]);
  const previousDialogActive = (0,_wordpress_compose__WEBPACK_IMPORTED_MODULE_4__["default"])(dialogActive);
  // Handle re-focus of the button which triggered the modal.
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useEffect)(() => {
    if (previousDialogActive === true && dialogActive === false) {
      handleElementRefocus();
    }
    return () => {
      // In majority of cases the modal is conditionally rendered, so dialogActive
      // will not be passed, as component will be unmounted/removed from the DOM.
      handleElementRefocus();
    };
  }, [previousDialogActive, dialogActive, handleElementRefocus]);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_ModalDialog__WEBPACK_IMPORTED_MODULE_1__["default"], {
    dialogActive: dialogActive,
    ...modalDialogProps
  });
}
RefocusableModalDialog.propTypes = {
  dialogActive: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().bool),
  refocusQuerySelector: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string),
  ...googlesitekit_components__WEBPACK_IMPORTED_MODULE_0__.Dialog.propTypes
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (RefocusableModalDialog);

/***/ }),

/***/ "./js/components/ReportError.js":
/*!**************************************!*\
  !*** ./js/components/ReportError.js ***!
  \**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ ReportError)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_14__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @wordpress/url */ "../node_modules/@wordpress/url/build-module/remove-query-args.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_util_errors__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util/errors */ "./js/util/errors.js");
/* harmony import */ var _js_util_insufficient_permissions_error_description__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/util/insufficient-permissions-error-description */ "./js/util/insufficient-permissions-error-description.js");
/* harmony import */ var _js_util_purify__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/util/purify */ "./js/util/purify.js");
/* harmony import */ var _notifications_CTA__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./notifications/CTA */ "./js/components/notifications/CTA.js");
/* harmony import */ var _ReportErrorActions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ReportErrorActions */ "./js/components/ReportErrorActions.js");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/* harmony import */ var _ErrorNotice__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./ErrorNotice */ "./js/components/ErrorNotice.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * ReportError component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */










function ReportError({
  moduleSlug,
  error
}) {
  const isViewOnly = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_9__["default"])();
  const module = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_MODULES).getModule(moduleSlug));
  const errors = Array.isArray(error) ? error : [error];
  let title;
  function getMessage(err) {
    if ((0,_js_util_errors__WEBPACK_IMPORTED_MODULE_4__.isInsufficientPermissionsError)(err)) {
      if (isViewOnly) {
        title = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.sprintf)(/* translators: %s: module name */
        (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Access lost to %s', 'google-site-kit'), module?.name);
        return (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.sprintf)(/* translators: %s: module name */
        (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('The administrator sharing this module with you has lost access to the %s service, so you won’t be able to see stats from it on the Site Kit dashboard. You can contact them or another administrator to restore access.', 'google-site-kit'), module?.name);
      }
      title = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.sprintf)(/* translators: %s: module name */
      (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Insufficient permissions in %s', 'google-site-kit'), module?.name);
      return (0,_js_util_insufficient_permissions_error_description__WEBPACK_IMPORTED_MODULE_5__.getInsufficientPermissionsErrorDescription)(err.message, module);
    }
    return (0,_js_util_errors__WEBPACK_IMPORTED_MODULE_4__.getReportErrorMessage)(err);
  }
  const uniqueErrors = (0,lodash__WEBPACK_IMPORTED_MODULE_0__.uniqWith)(errors.map(err => ({
    ...err,
    message: getMessage(err),
    // The `code` parameter contains a session ID which can vary
    // between requests, so we ignore it for comparison below.
    // To use the original `reconnectURL` elsewhere, use `err.data.reconnectURL`.
    reconnectURL: err.data?.reconnectURL ? (0,_wordpress_url__WEBPACK_IMPORTED_MODULE_12__.removeQueryArgs)(err.data.reconnectURL, 'code') : undefined
  })), (errorA, errorB) => errorA.message === errorB.message && errorA.reconnectURL === errorB.reconnectURL);
  const hasInsufficientPermissionsError = errors.some(err => (0,_js_util_errors__WEBPACK_IMPORTED_MODULE_4__.isInsufficientPermissionsError)(err));
  if (!hasInsufficientPermissionsError && uniqueErrors.length === 1) {
    title = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.sprintf)(/* translators: %s: module name */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Data error in %s', 'google-site-kit'), module?.name);
  } else if (!hasInsufficientPermissionsError && uniqueErrors.length > 1) {
    title = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.sprintf)(/* translators: %s: module name */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Data errors in %s', 'google-site-kit'), module?.name);
  }
  const description = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_wordpress_element__WEBPACK_IMPORTED_MODULE_13__.Fragment, {
    children: uniqueErrors.map(errorForNotice => {
      const reconnectURL = errorForNotice?.data?.reconnectURL;
      return reconnectURL ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_ErrorNotice__WEBPACK_IMPORTED_MODULE_10__["default"], {
        error: errorForNotice,
        message: errorForNotice.message
      }, errorForNotice.message) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("p", {
        children: _js_util_purify__WEBPACK_IMPORTED_MODULE_6__.purify.sanitize(errorForNotice.message, {
          // Ensures no HTML tags are passed as they would be
          // escaped by React and appear as strings.
          ALLOWED_TAGS: []
        })
      }, errorForNotice.message);
    })
  });
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_notifications_CTA__WEBPACK_IMPORTED_MODULE_7__["default"], {
    title: title,
    description: description,
    error: true,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_ReportErrorActions__WEBPACK_IMPORTED_MODULE_8__["default"], {
      moduleSlug: moduleSlug,
      error: error
    })
  });
}
ReportError.propTypes = {
  moduleSlug: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().string).isRequired,
  error: prop_types__WEBPACK_IMPORTED_MODULE_14___default().oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_14___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_14___default().object)), (prop_types__WEBPACK_IMPORTED_MODULE_14___default().object)]).isRequired
};

/***/ }),

/***/ "./js/components/ReportErrorActions.js":
/*!*********************************************!*\
  !*** ./js/components/ReportErrorActions.js ***!
  \*********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ ReportErrorActions)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_util_errors__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/util/errors */ "./js/util/errors.js");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/* harmony import */ var _Link__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Link */ "./js/components/Link.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * ReportErrorActions component.
 *
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */








function ReportErrorActions(props) {
  const {
    moduleSlug,
    error,
    GetHelpLink,
    hideGetHelpLink,
    buttonVariant,
    onRetry,
    onRequestAccess,
    getHelpClassName,
    RequestAccessButton,
    RetryButton
  } = props;
  const isViewOnly = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_6__["default"])();
  const storeName = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_MODULES).getModuleStoreName(moduleSlug));
  const requestAccessURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => typeof select(storeName)?.getServiceEntityAccessURL === 'function' ? select(storeName).getServiceEntityAccessURL() : null);
  const errors = Array.isArray(error) ? error : [error];
  const errorsWithSelectorData = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => errors.map(err => {
    const selectorData = select(storeName)?.getSelectorDataForError(err);
    return {
      ...err,
      selectorData
    };
  }));
  const retryableErrors = errorsWithSelectorData?.filter(err => (0,_js_util_errors__WEBPACK_IMPORTED_MODULE_5__.isErrorRetryable)(err, err.selectorData) && err.selectorData.name === 'getReport');
  const showRetry = !!retryableErrors.length;
  const errorTroubleshootingLinkURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    const err = {
      ...(showRetry ? retryableErrors[0] : errors[0])
    };
    if ((0,_js_util_errors__WEBPACK_IMPORTED_MODULE_5__.isInsufficientPermissionsError)(err)) {
      err.code = `${moduleSlug}_insufficient_permissions`;
    }
    return select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_SITE).getErrorTroubleshootingLinkURL(err);
  });
  const dispatch = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)();
  const hasInsufficientPermissionsError = errors.some(err => (0,_js_util_errors__WEBPACK_IMPORTED_MODULE_5__.isInsufficientPermissionsError)(err));
  const handleRetry = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_9__.useCallback)(() => {
    retryableErrors.forEach(err => {
      const {
        selectorData
      } = err;
      dispatch(selectorData.storeName).invalidateResolution(selectorData.name, selectorData.args);
    });
    onRetry?.();
  }, [dispatch, retryableErrors, onRetry]);
  const showRequestAccessURL = requestAccessURL && hasInsufficientPermissionsError && !isViewOnly;
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)("div", {
    className: "googlesitekit-report-error-actions",
    children: [showRequestAccessURL && (typeof RequestAccessButton === 'function' ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(RequestAccessButton, {
      requestAccessURL: requestAccessURL
    }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.Button, {
      onClick: onRequestAccess,
      href: requestAccessURL,
      target: "_blank",
      danger: buttonVariant === 'danger',
      tertiary: buttonVariant === 'tertiary',
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Request access', 'google-site-kit')
    })), showRetry && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_9__.Fragment, {
      children: [typeof RetryButton === 'function' ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(RetryButton, {
        handleRetry: handleRetry
      }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.Button, {
        onClick: handleRetry,
        danger: buttonVariant === 'danger',
        tertiary: buttonVariant === 'tertiary',
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Retry', 'google-site-kit')
      }), !hideGetHelpLink && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("span", {
        className: "googlesitekit-error-retry-text",
        children: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_10__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Retry didn’t work? <HelpLink />', 'google-site-kit'), {
          HelpLink: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_Link__WEBPACK_IMPORTED_MODULE_7__["default"], {
            href: errorTroubleshootingLinkURL,
            external: true,
            hideExternalIndicator: true,
            children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Get help', 'google-site-kit')
          })
        })
      })]
    }), !showRetry && !hideGetHelpLink && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("div", {
      className: getHelpClassName,
      children: typeof GetHelpLink === 'function' ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(GetHelpLink, {
        linkURL: errorTroubleshootingLinkURL
      }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_Link__WEBPACK_IMPORTED_MODULE_7__["default"], {
        href: errorTroubleshootingLinkURL,
        external: true,
        hideExternalIndicator: true,
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Get help', 'google-site-kit')
      })
    })]
  });
}
ReportErrorActions.propTypes = {
  moduleSlug: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().string).isRequired,
  error: prop_types__WEBPACK_IMPORTED_MODULE_11___default().oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_11___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_11___default().object)), (prop_types__WEBPACK_IMPORTED_MODULE_11___default().object)]).isRequired,
  GetHelpLink: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().elementType),
  hideGetHelpLink: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().bool),
  buttonVariant: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().string),
  onRetry: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().func),
  onRequestAccess: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().func),
  getHelpClassName: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().string),
  RequestAccessButton: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().elementType),
  RetryButton: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().elementType)
};

/***/ }),

/***/ "./js/components/ReportErrorButton/index.js":
/*!**************************************************!*\
  !*** ./js/components/ReportErrorButton/index.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var clipboard_copy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! clipboard-copy */ "../node_modules/clipboard-copy/index.js");
/* harmony import */ var clipboard_copy__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(clipboard_copy__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/icons */ "../node_modules/@wordpress/icons/build-module/icon/index.js");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/icons */ "../node_modules/@wordpress/icons/build-module/library/check.js");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/icons */ "../node_modules/@wordpress/icons/build-module/library/stack.js");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * ReportErrorButton component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */


function ReportErrorButton({
  message,
  componentStack
}) {
  const [copied, setCopied] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.useState)(false);
  function onErrorClick() {
    // Copy message with wrapping backticks for code block formatting on wp.org.
    clipboard_copy__WEBPACK_IMPORTED_MODULE_0___default()(`\`\`\`\n${message}\n${componentStack}\n\`\`\``);
    setCopied(true);
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.Button, {
    "aria-label": copied ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Error message copied to clipboard. Click to copy the error message again.', 'google-site-kit') : undefined,
    onClick: onErrorClick,
    trailingIcon: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_wordpress_icons__WEBPACK_IMPORTED_MODULE_5__["default"], {
      className: "mdc-button__icon",
      icon: copied ? _wordpress_icons__WEBPACK_IMPORTED_MODULE_6__["default"] : _wordpress_icons__WEBPACK_IMPORTED_MODULE_7__["default"]
    }),
    children: copied ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Copied to clipboard', 'google-site-kit') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Copy error contents', 'google-site-kit')
  });
}
ReportErrorButton.propTypes = {
  message: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().string),
  componentStack: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().string)
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ReportErrorButton);

/***/ }),

/***/ "./js/components/ReportTable.js":
/*!**************************************!*\
  !*** ./js/components/ReportTable.js ***!
  \**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ ReportTable)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _GatheringDataNotice__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./GatheringDataNotice */ "./js/components/GatheringDataNotice.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Report Table component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */





/**
 * WordPress dependencies
 */


/**
 * Internal dependencies.
 */



function ReportTable(props) {
  const {
    rows,
    columns,
    className,
    limit,
    zeroState: ZeroState,
    gatheringData = false,
    tabbedLayout = false
  } = props;
  invariant__WEBPACK_IMPORTED_MODULE_1___default()(Array.isArray(rows), 'rows must be an array.');
  invariant__WEBPACK_IMPORTED_MODULE_1___default()(Array.isArray(columns), 'columns must be an array.');
  columns.forEach(({
    Component,
    field = null
  }) => {
    invariant__WEBPACK_IMPORTED_MODULE_1___default()(Component || field !== null, 'each column must define a Component and/or a field.');
  });
  invariant__WEBPACK_IMPORTED_MODULE_1___default()(Number.isInteger(limit) || limit === undefined, 'limit must be an integer, if provided.');
  const hasBadges = columns.some(({
    badge
  }) => !!badge);
  const [activeColumnIndex, setActiveColumnIndex] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_6__.useState)(0);

  // The first column is expected to be the row title or label, which will always be
  // shown so we exclude it from the tab list.
  const tabColumns = tabbedLayout && columns.slice(1);
  const contentColumns = tabbedLayout ? [columns[0], tabColumns[activeColumnIndex]] : columns;
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
    className: className,
    children: [tabbedLayout && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_3__.TabBar, {
      className: "googlesitekit-tab-bar--start-aligned-high-contrast",
      activeIndex: activeColumnIndex,
      handleActiveIndexUpdate: setActiveColumnIndex,
      children: tabColumns.map(({
        title,
        badge
      }) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_3__.Tab, {
        "aria-label": title,
        children: [title, badge]
      }, title))
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
      className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-table', 'googlesitekit-table--with-list', {
        'googlesitekit-table--gathering-data': gatheringData
      }),
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("table", {
        className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-table__wrapper', `googlesitekit-table__wrapper--${contentColumns.length}-col`, {
          'googlesitekit-table__wrapper--tabbed-layout': tabbedLayout
        }),
        children: [!tabbedLayout && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("thead", {
          className: "googlesitekit-table__head",
          children: [hasBadges && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("tr", {
            className: "googlesitekit-table__head-badges",
            children: columns.map(({
              badge,
              primary,
              className: columnClassName,
              columnHeaderClassName
            }, colIndex) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("th", {
              className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-table__head-item', 'googlesitekit-table__head-item--badge', {
                'googlesitekit-table__head-item--primary': primary
              }, columnClassName, columnHeaderClassName),
              children: badge
            }, `googlesitekit-table__head-row-badge-${colIndex}`))
          }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("tr", {
            className: "googlesitekit-table__head-row",
            children: columns.map(({
              title,
              description,
              primary,
              className: columnClassName,
              columnHeaderClassName
            }, colIndex) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("th", {
              className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-table__head-item', {
                'googlesitekit-table__head-item--primary': primary
              }, columnClassName, columnHeaderClassName),
              "data-tooltip": description,
              children: title
            }, `googlesitekit-table__head-row-${colIndex}`))
          })]
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("tbody", {
          className: "googlesitekit-table__body",
          children: [gatheringData && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("tr", {
            className: "googlesitekit-table__body-row googlesitekit-table__body-row--no-data",
            children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("td", {
              className: "googlesitekit-table__body-item",
              colSpan: contentColumns.length,
              children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_GatheringDataNotice__WEBPACK_IMPORTED_MODULE_4__["default"], {})
            })
          }), !gatheringData && !rows?.length && ZeroState && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("tr", {
            className: "googlesitekit-table__body-row googlesitekit-table__body-row--no-data",
            children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("td", {
              className: "googlesitekit-table__body-item",
              colSpan: contentColumns.length,
              children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(ZeroState, {})
            })
          }), !gatheringData && rows.slice(0, limit).map((row, rowIndex) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("tr", {
            className: "googlesitekit-table__body-row",
            children: contentColumns.map(({
              Component,
              field,
              className: columnClassName
            }, colIndex) => {
              const fieldValue = field !== undefined ? (0,lodash__WEBPACK_IMPORTED_MODULE_2__.get)(row, field) : undefined;
              return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("td", {
                className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-table__body-item', columnClassName),
                children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
                  className: "googlesitekit-table__body-item-content",
                  children: [Component && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(Component, {
                    row: row,
                    fieldValue: fieldValue
                  }), !Component && fieldValue]
                })
              }, `googlesitekit-table__body-item-${colIndex}`);
            })
          }, `googlesitekit-table__body-row-${rowIndex}`))]
        })]
      })
    })]
  });
}
ReportTable.propTypes = {
  rows: prop_types__WEBPACK_IMPORTED_MODULE_7___default().arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_7___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_7___default().array), (prop_types__WEBPACK_IMPORTED_MODULE_7___default().object)])).isRequired,
  columns: prop_types__WEBPACK_IMPORTED_MODULE_7___default().arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_7___default().shape({
    title: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string),
    description: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string),
    primary: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().bool),
    className: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string),
    field: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string),
    Component: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().elementType),
    badge: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().node)
  })).isRequired,
  className: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string),
  limit: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().number),
  zeroState: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().func),
  gatheringData: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().bool),
  tabbedLayout: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().bool)
};

/***/ }),

/***/ "./js/components/ReportZero.js":
/*!*************************************!*\
  !*** ./js/components/ReportZero.js ***!
  \*************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ ReportZero)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _notifications_CTA__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./notifications/CTA */ "./js/components/notifications/CTA.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * ReportZero component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */




function ReportZero({
  moduleSlug
}) {
  const module = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_MODULES).getModule(moduleSlug));
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_notifications_CTA__WEBPACK_IMPORTED_MODULE_3__["default"], {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: Module name */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('%s Gathering Data', 'google-site-kit'), module?.name),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: Module name */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('%s data is not yet available, please check back later', 'google-site-kit'), module?.name)
  });
}
ReportZero.propTypes = {
  moduleSlug: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string).isRequired
};

/***/ }),

/***/ "./js/components/Root/ViewContextContext.js":
/*!**************************************************!*\
  !*** ./js/components/Root/ViewContextContext.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Consumer: () => (/* binding */ Consumer),
/* harmony export */   Provider: () => (/* binding */ Provider),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/**
 * View Context context for React components.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */

const ViewContextContext = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createContext)('');
const {
  Consumer,
  Provider
} = ViewContextContext;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ViewContextContext);

/***/ }),

/***/ "./js/components/SelectionBox.js":
/*!***************************************!*\
  !*** ./js/components/SelectionBox.js ***!
  \***************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SelectionBox)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * SelectionBox component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Internal dependencies
 */


function SelectionBox({
  badge,
  checked,
  children,
  disabled,
  id,
  onChange,
  title,
  value
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-selection-box', {
      'googlesitekit-selection-box--disabled': disabled
    }),
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.Checkbox, {
      checked: checked,
      description: children,
      disabled: disabled,
      id: id,
      name: id,
      onChange: onChange,
      value: value,
      badge: badge,
      children: title
    })
  });
}
SelectionBox.propTypes = {
  badge: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),
  checked: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),
  children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),
  disabled: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),
  id: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  onChange: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),
  title: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  value: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string)
};

/***/ }),

/***/ "./js/components/SelectionPanel/SelectionPanel.js":
/*!********************************************************!*\
  !*** ./js/components/SelectionPanel/SelectionPanel.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SelectionPanel)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _js_components_SideSheet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/SideSheet */ "./js/components/SideSheet.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Selection Panel component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Internal dependencies
 */


function SelectionPanel({
  children,
  isOpen,
  isLoading,
  onOpen,
  closePanel,
  className
}) {
  const classNameSelector = className?.split(/\s+/).map(name => `.${name}`).join('');
  const initialFocus = classNameSelector ? `${classNameSelector} .googlesitekit-selection-panel-item .googlesitekit-selection-box input` : '.googlesitekit-selection-panel-item .googlesitekit-selection-box input';
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_js_components_SideSheet__WEBPACK_IMPORTED_MODULE_1__["default"], {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-selection-panel', className),
    isOpen: isOpen,
    isLoading: isLoading,
    onOpen: onOpen,
    closeSheet: closePanel,
    focusTrapOptions: {
      initialFocus
    },
    children: children
  });
}
SelectionPanel.propTypes = {
  children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),
  isOpen: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),
  isLoading: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),
  onOpen: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),
  closePanel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),
  className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string)
};

/***/ }),

/***/ "./js/components/SelectionPanel/SelectionPanelError.js":
/*!*************************************************************!*\
  !*** ./js/components/SelectionPanel/SelectionPanelError.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SelectionPanelError)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _js_util_geometry__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/util/geometry */ "./js/util/geometry.js");
/* harmony import */ var _js_components_ErrorNotice__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/ErrorNotice */ "./js/components/ErrorNotice.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Selection Panel Error
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



function SelectionPanelError({
  error,
  noPrefix = true,
  skipRetryMessage = true
}) {
  const noticeRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useRef)();

  // Scroll the metric item (normally the last item in the panel)
  // being overlapped by the error.
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useEffect)(() => {
    if (error) {
      const currentFocusedElement = __webpack_require__.g.document.activeElement;
      if (currentFocusedElement && currentFocusedElement.closest('.googlesitekit-selection-panel-item') && (0,_js_util_geometry__WEBPACK_IMPORTED_MODULE_0__.elementsOverlap)(noticeRef.current, currentFocusedElement)) {
        currentFocusedElement.scrollIntoView();
      }
    }
  }, [error]);
  if (!error) {
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", {
    ref: noticeRef,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_js_components_ErrorNotice__WEBPACK_IMPORTED_MODULE_1__["default"], {
      className: "googlesitekit-notice--square googlesitekit-selection-panel-error",
      error: error,
      noPrefix: noPrefix,
      skipRetryMessage: skipRetryMessage
    })
  });
}
SelectionPanelError.propTypes = {
  error: prop_types__WEBPACK_IMPORTED_MODULE_4___default().shape({
    message: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string)
  }),
  noPrefix: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().bool),
  skipRetryMessage: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().bool)
};

/***/ }),

/***/ "./js/components/SelectionPanel/SelectionPanelFooter.js":
/*!**************************************************************!*\
  !*** ./js/components/SelectionPanel/SelectionPanelFooter.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SelectionPanelFooter)
/* harmony export */ });
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/PreviewBlock */ "./js/components/PreviewBlock.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Selection Panel Footer component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */






function SelectionPanelFooter({
  savedItemSlugs = [],
  selectedItemSlugs = [],
  saveSettings = () => {},
  minSelectedItemCount = 0,
  maxSelectedItemCount = 0,
  isBusy,
  onSaveSuccess = () => {},
  onCancel = () => {},
  isOpen,
  closePanel = () => {}
}) {
  const [finalButtonText, setFinalButtonText] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.useState)(null);
  const [wasSaved, setWasSaved] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.useState)(false);
  const isLoading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).isFetchingSyncAvailableAudiences());
  const haveSettingsChanged = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.useMemo)(() => {
    // Arrays need to be sorted to match in `isEqual`.
    return !(0,lodash__WEBPACK_IMPORTED_MODULE_0__.isEqual)((0,_js_util__WEBPACK_IMPORTED_MODULE_4__.safelySort)(selectedItemSlugs), (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.safelySort)(savedItemSlugs));
  }, [savedItemSlugs, selectedItemSlugs]);
  const currentButtonText = savedItemSlugs?.length > 0 && haveSettingsChanged ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Apply changes', 'google-site-kit') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Save selection', 'google-site-kit');
  const onSaveClick = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.useCallback)(async () => {
    const {
      error
    } = await saveSettings(selectedItemSlugs);
    if (!error) {
      onSaveSuccess();

      // Close the panel after saving.
      closePanel();

      // Lock the button label while panel is closing.
      setFinalButtonText(currentButtonText);
      setWasSaved(true);
    }
  }, [saveSettings, selectedItemSlugs, onSaveSuccess, closePanel, currentButtonText]);
  const onCancelClick = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.useCallback)(() => {
    closePanel();
    onCancel();
  }, [closePanel, onCancel]);
  const [prevIsOpen, setPrevIsOpen] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.useState)(null);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.useEffect)(() => {
    if (prevIsOpen !== null) {
      // If current isOpen is true, and different from prevIsOpen
      // meaning it transitioned from false to true and it is not
      // in closing transition, we should reset the button label
      // locked when save button was clicked.
      if (prevIsOpen !== isOpen) {
        if (isOpen) {
          setFinalButtonText(null);
          setWasSaved(false);
        }
      }
    }
    setPrevIsOpen(isOpen);
  }, [isOpen, prevIsOpen]);
  const selectedItemCount = selectedItemSlugs?.length || 0;
  const itemCountElement = isLoading ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_6__["default"], {
    width: "89px",
    height: "20px"
  }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("p", {
    className: "googlesitekit-selection-panel-footer__item-count",
    children: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_9__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.sprintf)(/* translators: 1: Number of selected items. 2: Maximum number of items that can be selected. */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('%1$d selected <MaxCount>(up to %2$d)</MaxCount>', 'google-site-kit'), selectedItemCount, maxSelectedItemCount), {
      MaxCount: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("span", {
        className: "googlesitekit-selection-panel-footer__item-count--max-count"
      })
    })
  });
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("footer", {
    className: "googlesitekit-selection-panel-footer",
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)("div", {
      className: "googlesitekit-selection-panel-footer__content",
      children: [itemCountElement, /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)("div", {
        className: "googlesitekit-selection-panel-footer__actions",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_3__.Button, {
          onClick: onCancelClick,
          disabled: isBusy,
          tertiary: true,
          children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Cancel', 'google-site-kit')
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_3__.SpinnerButton, {
          onClick: onSaveClick,
          isSaving: isBusy,
          disabled: selectedItemCount < minSelectedItemCount || selectedItemCount > maxSelectedItemCount || isBusy || !isOpen && wasSaved,
          children: finalButtonText || currentButtonText
        })]
      })]
    })
  });
}
SelectionPanelFooter.propTypes = {
  savedItemSlugs: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().array),
  selectedItemSlugs: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().array),
  saveSettings: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().func),
  minSelectedItemCount: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().number),
  maxSelectedItemCount: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().number),
  isBusy: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().bool),
  onSaveSuccess: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().func),
  onCancel: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().func),
  isOpen: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().bool),
  closePanel: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().func)
};

/***/ }),

/***/ "./js/components/SelectionPanel/SelectionPanelHeader.js":
/*!**************************************************************!*\
  !*** ./js/components/SelectionPanel/SelectionPanelHeader.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SelectionPanelHeader)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _svg_icons_close_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/svg/icons/close.svg */ "./svg/icons/close.svg");
/* harmony import */ var _js_components_Typography__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/Typography */ "./js/components/Typography/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Selection Panel Header component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */




function SelectionPanelHeader({
  children,
  title,
  onCloseClick
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("header", {
    className: "googlesitekit-selection-panel-header",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", {
      className: "googlesitekit-selection-panel-header__row",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_2__["default"], {
        as: "h3",
        size: "small",
        type: "headline",
        children: title
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_0__["default"], {
        className: "googlesitekit-selection-panel-header__close",
        onClick: onCloseClick,
        linkButton: true,
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_svg_icons_close_svg__WEBPACK_IMPORTED_MODULE_1__["default"], {
          width: "15",
          height: "15"
        })
      })]
    }), children]
  });
}
SelectionPanelHeader.propTypes = {
  children: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().node),
  title: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string),
  onCloseClick: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func)
};

/***/ }),

/***/ "./js/components/SelectionPanel/SelectionPanelItem.js":
/*!************************************************************!*\
  !*** ./js/components/SelectionPanel/SelectionPanelItem.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SelectionPanelItem)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_components_SelectionBox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/SelectionBox */ "./js/components/SelectionBox.js");
/* harmony import */ var _js_components_Badge__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/Badge */ "./js/components/Badge.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Selection Panel Item component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



function SelectionPanelItem({
  children,
  id,
  slug,
  title,
  description,
  isItemSelected,
  isItemDisabled,
  onCheckboxChange,
  subtitle,
  suffix,
  badge,
  isNewlyDetected
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", {
    className: "googlesitekit-selection-panel-item",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_js_components_SelectionBox__WEBPACK_IMPORTED_MODULE_1__["default"], {
      badge: badge,
      checked: isItemSelected,
      disabled: isItemDisabled,
      id: id,
      onChange: onCheckboxChange,
      title: title,
      value: slug,
      children: [subtitle && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", {
        className: "googlesitekit-selection-panel-item__subtitle",
        children: subtitle
      }), description, children]
    }), isNewlyDetected && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_js_components_Badge__WEBPACK_IMPORTED_MODULE_2__["default"], {
      label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('New', 'google-site-kit')
    }), suffix && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", {
      className: "googlesitekit-selection-panel-item__suffix",
      children: suffix
    })]
  });
}
SelectionPanelItem.propTypes = {
  children: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().node),
  id: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string),
  slug: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string),
  title: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string),
  description: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string),
  isItemSelected: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().bool),
  isItemDisabled: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().bool),
  onCheckboxChange: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func),
  subtitle: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string),
  suffix: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().node),
  badge: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().node),
  isNewlyDetected: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().bool)
};

/***/ }),

/***/ "./js/components/SelectionPanel/SelectionPanelItems.js":
/*!*************************************************************!*\
  !*** ./js/components/SelectionPanel/SelectionPanelItems.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SelectionPanelItems)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Selection Panel Items component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



function SelectionPanelItems({
  currentSelectionTitle = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Current selection', 'google-site-kit'),
  availableItemsTitle = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Additional items', 'google-site-kit'),
  savedItemSlugs = [],
  availableSavedItems = {},
  availableUnsavedItems = {},
  ItemComponent,
  notice
}) {
  function renderItems(items) {
    return Object.keys(items).map(slug => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ItemComponent, {
      slug: slug,
      savedItemSlugs: savedItemSlugs,
      ...items[slug]
    }, slug));
  }
  const availableUnsavedItemsCount = Object.keys(availableUnsavedItems).length;
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
    className: "googlesitekit-selection-panel-items",
    children: [
    // Split list into two sections with sub-headings for current selection and
    // additional items if there are already saved items.
    savedItemSlugs.length !== 0 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.Fragment, {
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("p", {
        className: "googlesitekit-selection-panel-items__subheading",
        children: currentSelectionTitle
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
        className: "googlesitekit-selection-panel-items__subsection",
        children: renderItems(availableSavedItems)
      }), availableUnsavedItemsCount > 0 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("p", {
        className: "googlesitekit-selection-panel-items__subheading",
        children: availableItemsTitle
      })]
    }), availableUnsavedItemsCount > 0 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
      className: "googlesitekit-selection-panel-items__subsection",
      children: renderItems(availableUnsavedItems)
    }), notice]
  });
}
SelectionPanelItems.propTypes = {
  currentSelectionTitle: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  availableItemsTitle: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  savedItemSlugs: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().array),
  availableSavedItems: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object),
  availableUnsavedItems: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object),
  ItemComponent: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().elementType),
  notice: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node)
};

/***/ }),

/***/ "./js/components/SelectionPanel/index.js":
/*!***********************************************!*\
  !*** ./js/components/SelectionPanel/index.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   SelectionPanelFooter: () => (/* reexport safe */ _SelectionPanelFooter__WEBPACK_IMPORTED_MODULE_4__["default"]),
/* harmony export */   SelectionPanelHeader: () => (/* reexport safe */ _SelectionPanelHeader__WEBPACK_IMPORTED_MODULE_1__["default"]),
/* harmony export */   SelectionPanelItem: () => (/* reexport safe */ _SelectionPanelItem__WEBPACK_IMPORTED_MODULE_2__["default"]),
/* harmony export */   SelectionPanelItems: () => (/* reexport safe */ _SelectionPanelItems__WEBPACK_IMPORTED_MODULE_3__["default"]),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _SelectionPanel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SelectionPanel */ "./js/components/SelectionPanel/SelectionPanel.js");
/* harmony import */ var _SelectionPanelHeader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SelectionPanelHeader */ "./js/components/SelectionPanel/SelectionPanelHeader.js");
/* harmony import */ var _SelectionPanelItem__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SelectionPanelItem */ "./js/components/SelectionPanel/SelectionPanelItem.js");
/* harmony import */ var _SelectionPanelItems__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./SelectionPanelItems */ "./js/components/SelectionPanel/SelectionPanelItems.js");
/* harmony import */ var _SelectionPanelFooter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./SelectionPanelFooter */ "./js/components/SelectionPanel/SelectionPanelFooter.js");
/**
 * Selection Panel components.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */





/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_SelectionPanel__WEBPACK_IMPORTED_MODULE_0__["default"]);

/***/ }),

/***/ "./js/components/SideSheet.js":
/*!************************************!*\
  !*** ./js/components/SideSheet.js ***!
  \************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SideSheet)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var focus_trap_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! focus-trap-react */ "../node_modules/focus-trap-react/dist/focus-trap-react.js");
/* harmony import */ var focus_trap_react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(focus_trap_react__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useClickAway.js");
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useKey.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_keycodes__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/keycodes */ "../node_modules/@wordpress/keycodes/build-module/index.js");
/* harmony import */ var _Portal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Portal */ "./js/components/Portal.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * SideSheet component
 *
 * This component is named after Material Side Sheets
 * (https://m3.material.io/components/side-sheets/overview), which is
 * planned but not yet implemented for Web. Once available, we could look
 * into moving this to `googlesitekit-components` and replacing it with
 * the Material implementation.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */





/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


function SideSheet({
  className,
  children,
  isOpen,
  isLoading,
  onOpen = () => {},
  closeSheet = () => {},
  focusTrapOptions = {}
}) {
  const sideSheetRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.useRef)();
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.useEffect)(() => {
    if (isOpen) {
      onOpen();
      document.body.classList.add('googlesitekit-side-sheet-scroll-lock');
    } else {
      document.body.classList.remove('googlesitekit-side-sheet-scroll-lock');
    }
  }, [isOpen, onOpen]);
  (0,react_use__WEBPACK_IMPORTED_MODULE_5__["default"])(sideSheetRef, closeSheet);
  (0,react_use__WEBPACK_IMPORTED_MODULE_6__["default"])(event => isOpen && _wordpress_keycodes__WEBPACK_IMPORTED_MODULE_7__.ESCAPE === event.keyCode, closeSheet);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_Portal__WEBPACK_IMPORTED_MODULE_2__["default"], {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)((focus_trap_react__WEBPACK_IMPORTED_MODULE_1___default()), {
      active: !!isOpen && !isLoading,
      focusTrapOptions: {
        fallbackFocus: 'body',
        ...focusTrapOptions
      },
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("section", {
        ref: sideSheetRef,
        className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-side-sheet', className, {
          'googlesitekit-side-sheet--open': isOpen
        }),
        role: "dialog",
        "aria-modal": "true",
        "aria-hidden": !isOpen,
        tabIndex: "0",
        children: children
      })
    }), isOpen && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", {
      className: "googlesitekit-side-sheet-overlay"
    })]
  });
}
SideSheet.propTypes = {
  className: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().string),
  children: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().node),
  isOpen: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool),
  isLoading: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool),
  onOpen: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().func),
  closeSheet: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().func),
  focusTrapOptions: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().object)
};

/***/ }),

/***/ "./js/components/SourceLink.tsx":
/*!**************************************!*\
  !*** ./js/components/SourceLink.tsx ***!
  \**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Link */ "./js/components/Link.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_googlesitekit_widgets_hooks_useWidget__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/widgets/hooks/useWidget */ "./js/googlesitekit/widgets/hooks/useWidget.ts");
/* provided dependency */ var React = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/index.js");
/**
 * SourceLink component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */





function SourceLink({
  name = '',
  href = '',
  className = '',
  external = false
}) {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_5__["default"])();
  const viewOnlyDashboard = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_4__["default"])();
  const widget = (0,_js_googlesitekit_widgets_hooks_useWidget__WEBPACK_IMPORTED_MODULE_6__["default"])();
  const handleClick = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_7__.useCallback)(() => {
    if (!widget.slug || !viewContext) {
      return;
    }
    (0,_js_util__WEBPACK_IMPORTED_MODULE_3__.trackEvent)(`${viewContext}_widget`, 'click_source_link', widget.slug);
  }, [viewContext, widget]);
  if (viewOnlyDashboard) {
    return null;
  }
  return /*#__PURE__*/React.createElement("div", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-source-link', className)
  }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.sprintf)(/* translators: %s: source link */
  (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Source: %s', 'google-site-kit'), `<a>${name}</a>`), {
    a: /*#__PURE__*/React.createElement(_Link__WEBPACK_IMPORTED_MODULE_2__["default"], {
      key: "link"
      // @ts-expect-error - The `Link` component is not currently typed.
      ,
      href: href,
      external: external,
      onClick: handleClick
    })
  }));
}
SourceLink.propTypes = {
  name: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string),
  href: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string),
  className: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string),
  external: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().bool)
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SourceLink);

/***/ }),

/***/ "./js/components/Sparkline.js":
/*!************************************!*\
  !*** ./js/components/Sparkline.js ***!
  \************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _GoogleChart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./GoogleChart */ "./js/components/GoogleChart/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Sparkline component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */


function Sparkline({
  change,
  data,
  invertChangeColor,
  loadingHeight
}) {
  if (!data) {
    return null;
  }
  const colors = [];
  const green = 'green';
  const red = 'red';
  if (change === null) {
    // Use green color by default if the change can't be determined.
    colors.push(green);
  } else {
    const positiveColor = !invertChangeColor ? green : red;
    const negativeColor = !invertChangeColor ? red : green;
    colors.push(0 <= (parseFloat(change) || 0) ? positiveColor : negativeColor);
  }
  const chartOptions = {
    title: '',
    backgroundColor: 'transparent',
    curveType: 'line',
    width: '100%',
    height: '50',
    enableInteractivity: false,
    chartArea: {
      height: '100%',
      width: '100%'
    },
    legend: {
      position: 'none'
    },
    axisFontSize: 0,
    hAxis: {
      baselineColor: 'none',
      ticks: []
    },
    vAxis: {
      baselineColor: 'none',
      ticks: []
    },
    axes: [],
    colors
  };

  // If the line is flat (zero change), we need to adjust it so
  // it sits in line visually with the other graphs.
  if (!data.slice(1).some(row => row[1] > 0)) {
    chartOptions.vAxis.minValue = 0;
    chartOptions.vAxis.maxValue = 1;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
    className: "googlesitekit-analytics-sparkline-chart-wrap",
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_GoogleChart__WEBPACK_IMPORTED_MODULE_0__["default"], {
      chartType: "LineChart",
      data: data,
      loadingHeight: loadingHeight,
      options: chartOptions
    })
  });
}
Sparkline.propTypes = {
  invertChangeColor: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),
  loadingHeight: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string)
};
Sparkline.defaultProps = {
  invertChangeColor: false,
  loadingHeight: '46px'
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Sparkline);

/***/ }),

/***/ "./js/components/StoreErrorNotices.js":
/*!********************************************!*\
  !*** ./js/components/StoreErrorNotices.js ***!
  \********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ StoreErrorNotices)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _ErrorNotice__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ErrorNotice */ "./js/components/ErrorNotice.js");
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_util_errors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/util/errors */ "./js/util/errors.js");
/* harmony import */ var _js_util_insufficient_permissions_error_description__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util/insufficient-permissions-error-description */ "./js/util/insufficient-permissions-error-description.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * StoreErrorNotices component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */






function StoreErrorNotices({
  hasButton = false,
  moduleSlug,
  storeName
}) {
  const errors = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(storeName).getErrors());
  const module = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_MODULES).getModule(moduleSlug));
  const existingErrorMessages = [];
  return errors.filter(error => {
    if (!error?.message || existingErrorMessages.includes(error.message)) {
      return false;
    }
    existingErrorMessages.push(error.message);
    return true;
  }).map((error, key) => {
    let {
      message
    } = error;
    if ((0,_js_util_errors__WEBPACK_IMPORTED_MODULE_3__.isInsufficientPermissionsError)(error)) {
      message = (0,_js_util_insufficient_permissions_error_description__WEBPACK_IMPORTED_MODULE_4__.getInsufficientPermissionsErrorDescription)(message, module);
    }
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_ErrorNotice__WEBPACK_IMPORTED_MODULE_1__["default"], {
      error: error,
      hasButton: hasButton,
      storeName: storeName,
      message: message
    }, key);
  });
}
StoreErrorNotices.propTypes = {
  hasButton: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().bool),
  storeName: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().string).isRequired,
  moduleSlug: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().string)
};

/***/ }),

/***/ "./js/components/SupportLink.js":
/*!**************************************!*\
  !*** ./js/components/SupportLink.js ***!
  \**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SupportLink)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _Link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Link */ "./js/components/Link.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */




function SupportLink(props) {
  const {
    path,
    query,
    hash,
    ...otherProps
  } = props;
  const supportURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_SITE).getGoogleSupportURL({
    path,
    query,
    hash
  }));
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_Link__WEBPACK_IMPORTED_MODULE_2__["default"], {
    ...otherProps,
    href: supportURL
  });
}
SupportLink.propTypes = {
  path: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,
  query: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().object),
  hash: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string)
};

/***/ }),

/***/ "./js/components/TableOverflowContainer.js":
/*!*************************************************!*\
  !*** ./js/components/TableOverflowContainer.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useEvent.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * TableOverflowContainer component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */





/**
 * WordPress dependencies
 */


function TableOverflowContainer({
  children
}) {
  const [isScrolling, setScrolling] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useState)(false);
  const scrollRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useRef)();
  const debouncedScrollCheck = (0,lodash__WEBPACK_IMPORTED_MODULE_0__.debounce)(setIsScrolling, 100);
  (0,react_use__WEBPACK_IMPORTED_MODULE_4__["default"])('resize', debouncedScrollCheck);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useEffect)(() => {
    setIsScrolling();
  }, []);
  function setIsScrolling() {
    if (!scrollRef.current) {
      return;
    }
    const {
      scrollLeft,
      scrollWidth,
      offsetWidth
    } = scrollRef.current;
    const maxScroll = scrollWidth - offsetWidth;
    const scrolling = scrollLeft < maxScroll - 16 && 0 < maxScroll - 16; // 16 = $grid-gap-phone

    setScrolling(scrolling);
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", {
    onScroll: (0,lodash__WEBPACK_IMPORTED_MODULE_0__.debounce)(setIsScrolling, 100),
    className: classnames__WEBPACK_IMPORTED_MODULE_1___default()('googlesitekit-table-overflow', {
      'googlesitekit-table-overflow--gradient': isScrolling
    }),
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", {
      ref: scrollRef,
      className: "googlesitekit-table-overflow__container",
      children: children
    })
  });
}
TableOverflowContainer.propTypes = {
  children: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().element)
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TableOverflowContainer);

/***/ }),

/***/ "./js/components/ToastNotice.js":
/*!**************************************!*\
  !*** ./js/components/ToastNotice.js ***!
  \**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ ToastNotice)
/* harmony export */ });
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useMount.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _Notice__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Notice */ "./js/components/Notice/index.js");
/* harmony import */ var _Notice_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Notice/constants */ "./js/components/Notice/constants.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * ToastNotice component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



function ToastNotice({
  title,
  onDismiss
}) {
  const [isHidden, setIsHidden] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useState)(false);
  (0,react_use__WEBPACK_IMPORTED_MODULE_4__["default"])(() => {
    setTimeout(() => {
      setIsHidden(true);
      onDismiss?.();
    }, 5500);
  });
  if (isHidden) {
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_Notice__WEBPACK_IMPORTED_MODULE_0__["default"], {
    className: "googlesitekit-toast-notice",
    title: title,
    type: _Notice_constants__WEBPACK_IMPORTED_MODULE_1__.TYPES.SUCCESS
  });
}

/***/ }),

/***/ "./js/components/TourTooltip.js":
/*!**************************************!*\
  !*** ./js/components/TourTooltip.js ***!
  \**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ TourTooltip)
/* harmony export */ });
/* harmony import */ var _material_react_card__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/react-card */ "../node_modules/@material/react-card/dist/index.js");
/* harmony import */ var _material_react_card__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_material_react_card__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _js_util_create_incremental_array_by_size__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util/create-incremental-array-by-size */ "./js/util/create-incremental-array-by-size.js");
/* harmony import */ var _svg_icons_close_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/svg/icons/close.svg */ "./svg/icons/close.svg");
/* harmony import */ var _Typography__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./Typography */ "./js/components/Typography/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * TourTooltip component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */




/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */





function TourTooltip({
  backProps,
  closeProps,
  index,
  primaryProps,
  size,
  step,
  tooltipProps
}) {
  const indicatorArray = size > 1 ? (0,_js_util_create_incremental_array_by_size__WEBPACK_IMPORTED_MODULE_4__.createIncrementalArrayBySize)(size) : [];
  function getIndicatorClassName(indicatorIndex) {
    return classnames__WEBPACK_IMPORTED_MODULE_1___default()('googlesitekit-tooltip-indicator', {
      active: indicatorIndex === index
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", {
    className: classnames__WEBPACK_IMPORTED_MODULE_1___default()('googlesitekit-tour-tooltip', step.className),
    ...tooltipProps,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)((_material_react_card__WEBPACK_IMPORTED_MODULE_0___default()), {
      className: "googlesitekit-tooltip-card",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)("div", {
        className: "googlesitekit-tooltip-body",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_Typography__WEBPACK_IMPORTED_MODULE_6__["default"], {
          as: "h2",
          className: "googlesitekit-tooltip-title",
          size: "medium",
          type: "title",
          children: step.title
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", {
          className: "googlesitekit-tooltip-content",
          children: step.content
        })]
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(_material_react_card__WEBPACK_IMPORTED_MODULE_0__.CardActions, {
        className: "googlesitekit-tooltip-actions",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("ul", {
          className: "googlesitekit-tooltip-indicators",
          children: indicatorArray.map(indicatorIndex => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("li", {
            className: getIndicatorClassName(indicatorIndex)
          }, `indicator-${indicatorIndex}`))
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)("div", {
          className: "googlesitekit-tooltip-buttons",
          children: [index !== 0 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_3__.Button, {
            className: "googlesitekit-tooltip-button",
            text: true,
            ...backProps,
            children: backProps.title
          }), step.cta, primaryProps.title && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_3__.Button, {
            className: "googlesitekit-tooltip-button",
            text: true,
            ...primaryProps,
            children: primaryProps.title
          })]
        })]
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_3__.Button, {
        className: "googlesitekit-tooltip-close",
        icon: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_svg_icons_close_svg__WEBPACK_IMPORTED_MODULE_5__["default"], {
          width: "14",
          height: "14"
        }),
        onClick: closeProps.onClick,
        "aria-label": (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Close', 'google-site-kit'),
        text: true,
        hideTooltipTitle: true
      })]
    })
  });
}

/**
 * All props are provided directly from `react-joyride`, intended for custom components.
 *
 * @since 1.28.0
 * @see {@link https://docs.react-joyride.com/custom-components#props-1}.
 */
TourTooltip.propTypes = {
  backProps: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().object).isRequired,
  closeProps: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().object).isRequired,
  index: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().number).isRequired,
  isLastStep: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool).isRequired,
  primaryProps: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().object).isRequired,
  size: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().number).isRequired,
  step: prop_types__WEBPACK_IMPORTED_MODULE_8___default().shape({
    content: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().node),
    title: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().node),
    cta: prop_types__WEBPACK_IMPORTED_MODULE_8___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_8___default().element), (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool)]),
    className: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().string)
  }).isRequired,
  tooltipProps: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().object).isRequired
};

/***/ }),

/***/ "./js/components/TourTooltips.js":
/*!***************************************!*\
  !*** ./js/components/TourTooltips.js ***!
  \***************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   GA_ACTIONS: () => (/* binding */ GA_ACTIONS),
/* harmony export */   "default": () => (/* binding */ TourTooltips),
/* harmony export */   floaterProps: () => (/* binding */ floaterProps),
/* harmony export */   joyrideStyles: () => (/* binding */ joyrideStyles)
/* harmony export */ });
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useMount.js");
/* harmony import */ var react_joyride__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react-joyride */ "../node_modules/react-joyride/dist/index.mjs");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_util_tracking__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util/tracking */ "./js/util/tracking/index.js");
/* harmony import */ var _TourTooltip__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./TourTooltip */ "./js/components/TourTooltip.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * TourTooltips component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */




/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */







/** For available options, see: {@link https://github.com/gilbarbara/react-joyride/blob/3e08384415a831b20ce21c8423b6c271ad419fbf/src/styles.js}. */

const joyrideStyles = {
  options: {
    arrowColor: '#3c7251',
    // $c-content-primary
    backgroundColor: '#3c7251',
    // $c-content-primary
    overlayColor: 'rgba(0, 0, 0, 0.6)',
    textColor: '#fff',
    // $c-content-on-primary
    zIndex: 20000
  },
  spotlight: {
    border: '2px solid #3c7251',
    // $c-content-primary
    backgroundColor: '#fff'
  }
};

// Provides button content as well as aria-label & title attribute values.
const joyrideLocale = {
  back: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Back', 'google-site-kit'),
  close: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Close', 'google-site-kit'),
  last: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Got it', 'google-site-kit'),
  next: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Next', 'google-site-kit')
};

/** For available options, see: {@link https://github.com/gilbarbara/react-floater#props}. */
const floaterProps = {
  disableAnimation: true,
  styles: {
    arrow: {
      length: 8,
      margin: 56,
      spread: 16
    },
    floater: {
      filter: 'drop-shadow(rgba(60, 64, 67, 0.3) 0px 1px 2px) drop-shadow(rgba(60, 64, 67, 0.15) 0px 2px 6px)'
    }
  }
};

// GA Event Tracking actions (do not change!)
const GA_ACTIONS = {
  VIEW: 'feature_tooltip_view',
  NEXT: 'feature_tooltip_advance',
  PREV: 'feature_tooltip_return',
  DISMISS: 'feature_tooltip_dismiss',
  COMPLETE: 'feature_tooltip_complete'
};
function TourTooltips({
  steps,
  tourID,
  gaEventCategory,
  callback
}) {
  const stepKey = `${tourID}-step`;
  const runKey = `${tourID}-run`;
  const {
    setValue
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_UI);
  const {
    dismissTour
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER);
  const registry = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useRegistry)();
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_6__["default"])();
  const stepIndex = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_UI).getValue(stepKey) || 0);
  const run = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    return select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_UI).getValue(runKey) && select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).isTourDismissed(tourID) === false;
  });
  function changeStep(index, action) {
    return setValue(stepKey, index + (action === react_joyride__WEBPACK_IMPORTED_MODULE_8__.ACTIONS.PREV ? -1 : 1));
  }
  function startTour() {
    __webpack_require__.g.document.body.classList.add('googlesitekit-showing-feature-tour', `googlesitekit-showing-feature-tour--${tourID}`);
    setValue(runKey, true);
  }
  function endTour() {
    __webpack_require__.g.document.body.classList.remove('googlesitekit-showing-feature-tour', `googlesitekit-showing-feature-tour--${tourID}`);
    // Dismiss tour to avoid unwanted repeat viewing.
    dismissTour(tourID);
  }
  function trackAllTourEvents({
    index,
    action,
    lifecycle,
    size,
    status,
    type
  }) {
    // The index is 0-based, but step numbers are 1-based.
    const stepNumber = index + 1;
    const eventCategory = typeof gaEventCategory === 'function' ? gaEventCategory(viewContext) : gaEventCategory;
    if (type === react_joyride__WEBPACK_IMPORTED_MODULE_8__.EVENTS.TOOLTIP && lifecycle === react_joyride__WEBPACK_IMPORTED_MODULE_8__.LIFECYCLE.TOOLTIP) {
      (0,_js_util_tracking__WEBPACK_IMPORTED_MODULE_4__.trackEvent)(eventCategory, GA_ACTIONS.VIEW, stepNumber);
    } else if (action === react_joyride__WEBPACK_IMPORTED_MODULE_8__.ACTIONS.CLOSE && lifecycle === react_joyride__WEBPACK_IMPORTED_MODULE_8__.LIFECYCLE.COMPLETE) {
      (0,_js_util_tracking__WEBPACK_IMPORTED_MODULE_4__.trackEvent)(eventCategory, GA_ACTIONS.DISMISS, stepNumber);
    } else if (action === react_joyride__WEBPACK_IMPORTED_MODULE_8__.ACTIONS.NEXT && status === react_joyride__WEBPACK_IMPORTED_MODULE_8__.STATUS.FINISHED && type === react_joyride__WEBPACK_IMPORTED_MODULE_8__.EVENTS.TOUR_END &&
    // Here we need to additionally check the size === stepNumber because
    // it is the only way to differentiate the status/event combination
    // from an identical combination that happens immediately after completion
    // on index `0` to avoid duplicate measurement.
    size === stepNumber) {
      (0,_js_util_tracking__WEBPACK_IMPORTED_MODULE_4__.trackEvent)(eventCategory, GA_ACTIONS.COMPLETE, stepNumber);
    }
    if (lifecycle !== react_joyride__WEBPACK_IMPORTED_MODULE_8__.LIFECYCLE.COMPLETE || status === react_joyride__WEBPACK_IMPORTED_MODULE_8__.STATUS.FINISHED) {
      return;
    }
    if (action === react_joyride__WEBPACK_IMPORTED_MODULE_8__.ACTIONS.PREV) {
      (0,_js_util_tracking__WEBPACK_IMPORTED_MODULE_4__.trackEvent)(eventCategory, GA_ACTIONS.PREV, stepNumber);
    }
    if (action === react_joyride__WEBPACK_IMPORTED_MODULE_8__.ACTIONS.NEXT) {
      (0,_js_util_tracking__WEBPACK_IMPORTED_MODULE_4__.trackEvent)(eventCategory, GA_ACTIONS.NEXT, stepNumber);
    }
  }

  /**
   * Handles `react-joyride` state changes using callback function.
   *
   * @typedef {Object} JoyrideCallbackData
   * @property {string} action The action that updated the state.
   * @property {status} status The tour's status.
   * @property {number} index  Step index.
   * @property {string} type   Specific type (tour, step, beacon).
   *
   * @since 1.28.0
   * @since 1.38.0 Calls new callback prop.
   * @see {@link https://docs.react-joyride.com/callback} Example data provided by `react-joyride`.
   * @see {@link https://docs.react-joyride.com/constants} State & lifecycle constants used by `react-joyride`.
   *
   * @param {JoyrideCallbackData} data Data object provided via `react-joyride` callback prop.
   */
  function handleJoyrideCallback(data) {
    trackAllTourEvents(data);
    const {
      action,
      index,
      status,
      step,
      type
    } = data;
    const hasCloseAction = action === react_joyride__WEBPACK_IMPORTED_MODULE_8__.ACTIONS.CLOSE;
    const shouldChangeStep = !hasCloseAction && [react_joyride__WEBPACK_IMPORTED_MODULE_8__.EVENTS.STEP_AFTER, react_joyride__WEBPACK_IMPORTED_MODULE_8__.EVENTS.TARGET_NOT_FOUND].includes(type);
    const isFinishedOrSkipped = [react_joyride__WEBPACK_IMPORTED_MODULE_8__.STATUS.FINISHED, react_joyride__WEBPACK_IMPORTED_MODULE_8__.STATUS.SKIPPED].includes(status);
    const shouldCloseFromButtonClick = hasCloseAction && type === react_joyride__WEBPACK_IMPORTED_MODULE_8__.EVENTS.STEP_AFTER;
    const shouldEndTour = isFinishedOrSkipped || shouldCloseFromButtonClick;

    // Center the target in the viewport when transitioning to the step.
    if (react_joyride__WEBPACK_IMPORTED_MODULE_8__.EVENTS.STEP_BEFORE === type) {
      let el = step.target;
      if ('string' === typeof step.target) {
        el = __webpack_require__.g.document.querySelector(step.target);
      }
      el?.scrollIntoView?.({
        block: 'center'
      });
    }
    if (shouldChangeStep) {
      changeStep(index, action);
    } else if (shouldEndTour) {
      endTour();
    }
    if (callback) {
      callback(data, registry);
    }
  }

  // Start tour on initial render
  (0,react_use__WEBPACK_IMPORTED_MODULE_9__["default"])(startTour);
  const parsedSteps = steps.map(step => ({
    disableBeacon: true,
    isFixed: true,
    placement: 'auto',
    ...step
  }));
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(react_joyride__WEBPACK_IMPORTED_MODULE_8__["default"], {
    callback: handleJoyrideCallback,
    floaterProps: floaterProps,
    locale: joyrideLocale,
    run: run,
    stepIndex: stepIndex,
    steps: parsedSteps,
    styles: joyrideStyles,
    tooltipComponent: _TourTooltip__WEBPACK_IMPORTED_MODULE_5__["default"],
    continuous: true,
    disableOverlayClose: true,
    disableScrolling: true,
    showProgress: true
  });
}

/** For available properties & docs for `steps`, see: {@link https://docs.react-joyride.com/step#options}. */
TourTooltips.propTypes = {
  steps: prop_types__WEBPACK_IMPORTED_MODULE_10___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_10___default().object)).isRequired,
  tourID: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().string).isRequired,
  gaEventCategory: prop_types__WEBPACK_IMPORTED_MODULE_10___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_10___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_10___default().func)]).isRequired,
  callback: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().func)
};

/***/ }),

/***/ "./js/components/Typography/P.js":
/*!***************************************!*\
  !*** ./js/components/Typography/P.js ***!
  \***************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ P)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/hooks/useBreakpoint */ "./js/hooks/useBreakpoint.ts");
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! . */ "./js/components/Typography/index.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./js/components/Typography/constants.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */




function P({
  type = _constants__WEBPACK_IMPORTED_MODULE_2__.TYPE_BODY,
  size,
  children,
  ...props
}) {
  const breakpoint = (0,_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_0__.useBreakpoint)();
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(___WEBPACK_IMPORTED_MODULE_1__["default"], {
    as: "p",
    type: type,
    size: size || (breakpoint === _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_0__.BREAKPOINT_SMALL ? _constants__WEBPACK_IMPORTED_MODULE_2__.SIZE_SMALL : _constants__WEBPACK_IMPORTED_MODULE_2__.SIZE_MEDIUM),
    ...props,
    children: children
  });
}
P.propTypes = {
  type: prop_types__WEBPACK_IMPORTED_MODULE_4___default().oneOf(_constants__WEBPACK_IMPORTED_MODULE_2__.VALID_TYPES),
  size: prop_types__WEBPACK_IMPORTED_MODULE_4___default().oneOf(_constants__WEBPACK_IMPORTED_MODULE_2__.VALID_SIZES)
};

/***/ }),

/***/ "./js/components/Typography/constants.js":
/*!***********************************************!*\
  !*** ./js/components/Typography/constants.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   SIZE_LARGE: () => (/* binding */ SIZE_LARGE),
/* harmony export */   SIZE_MEDIUM: () => (/* binding */ SIZE_MEDIUM),
/* harmony export */   SIZE_SMALL: () => (/* binding */ SIZE_SMALL),
/* harmony export */   TYPE_BODY: () => (/* binding */ TYPE_BODY),
/* harmony export */   TYPE_DISPLAY: () => (/* binding */ TYPE_DISPLAY),
/* harmony export */   TYPE_HEADLINE: () => (/* binding */ TYPE_HEADLINE),
/* harmony export */   TYPE_LABEL: () => (/* binding */ TYPE_LABEL),
/* harmony export */   TYPE_TITLE: () => (/* binding */ TYPE_TITLE),
/* harmony export */   VALID_SIZES: () => (/* binding */ VALID_SIZES),
/* harmony export */   VALID_TYPES: () => (/* binding */ VALID_TYPES)
/* harmony export */ });
/**
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const TYPE_DISPLAY = 'display';
const TYPE_HEADLINE = 'headline';
const TYPE_TITLE = 'title';
const TYPE_BODY = 'body';
const TYPE_LABEL = 'label';
const VALID_TYPES = [TYPE_BODY, TYPE_DISPLAY, TYPE_HEADLINE, TYPE_LABEL, TYPE_TITLE];
const SIZE_SMALL = 'small';
const SIZE_MEDIUM = 'medium';
const SIZE_LARGE = 'large';
const VALID_SIZES = [SIZE_SMALL, SIZE_MEDIUM, SIZE_LARGE];

/***/ }),

/***/ "./js/components/Typography/index.js":
/*!*******************************************!*\
  !*** ./js/components/Typography/index.js ***!
  \*******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Typography)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ "./js/components/Typography/constants.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Internal dependencies
 */


function Typography({
  className,
  type,
  size,
  as: Component = 'span',
  children,
  ...props
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Component, {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-typography', className, {
      [`googlesitekit-typography--${type}`]: type && _constants__WEBPACK_IMPORTED_MODULE_1__.VALID_TYPES.includes(type),
      [`googlesitekit-typography--${size}`]: size && _constants__WEBPACK_IMPORTED_MODULE_1__.VALID_SIZES.includes(size)
    }),
    ...props,
    children: children
  });
}
Typography.propTypes = {
  className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  type: prop_types__WEBPACK_IMPORTED_MODULE_3___default().oneOf(_constants__WEBPACK_IMPORTED_MODULE_1__.VALID_TYPES),
  size: prop_types__WEBPACK_IMPORTED_MODULE_3___default().oneOf(_constants__WEBPACK_IMPORTED_MODULE_1__.VALID_SIZES),
  as: prop_types__WEBPACK_IMPORTED_MODULE_3___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_3___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_3___default().elementType)])
};

/***/ }),

/***/ "./js/components/VisuallyHidden.js":
/*!*****************************************!*\
  !*** ./js/components/VisuallyHidden.js ***!
  \*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Visually Hidden component, mainly used for screen-reader text.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



function VisuallyHidden({
  className,
  children,
  ...otherProps
}) {
  if (!children) {
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("span", {
    ...otherProps,
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('screen-reader-text', className),
    children: children
  });
}
VisuallyHidden.propTypes = {
  className: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),
  children: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().node)
};
VisuallyHidden.defaultProps = {
  className: ''
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (VisuallyHidden);

/***/ }),

/***/ "./js/components/conversion-tracking/ConfirmDisableConversionTrackingDialog.js":
/*!*************************************************************************************!*\
  !*** ./js/components/conversion-tracking/ConfirmDisableConversionTrackingDialog.js ***!
  \*************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ ConfirmDisableConversionTrackingDialog)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useMount.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_components_RefocusableModalDialog__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/RefocusableModalDialog */ "./js/components/RefocusableModalDialog.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */




function ConfirmDisableConversionTrackingDialog({
  onConfirm,
  onCancel
}) {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_3__["default"])();
  const subtitle = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('By disabling plugin conversion tracking, you will no longer have access to:', 'google-site-kit');
  const provides = [(0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Performance of your Ad campaigns', 'google-site-kit'), (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Tracking additional conversion-related events via Analytics', 'google-site-kit')];
  (0,react_use__WEBPACK_IMPORTED_MODULE_5__["default"])(() => {
    (0,_js_util__WEBPACK_IMPORTED_MODULE_2__.trackEvent)(`${viewContext}`, 'ect_view_modal');
  });
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_js_components_RefocusableModalDialog__WEBPACK_IMPORTED_MODULE_1__["default"], {
    className: "googlesitekit-settings-module__confirm-disconnect-modal",
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Disable plugin conversion tracking', 'google-site-kit'),
    subtitle: subtitle,
    handleConfirm: onConfirm,
    handleCancel: onCancel,
    onClose: onCancel,
    provides: provides,
    confirmButton: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Disable', 'google-site-kit'),
    dialogActive: true,
    danger: true
  });
}
ConfirmDisableConversionTrackingDialog.propTypes = {
  onConfirm: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().func).isRequired,
  onCancel: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().func).isRequired
};

/***/ }),

/***/ "./js/components/conversion-tracking/ConversionTrackingToggle.js":
/*!***********************************************************************!*\
  !*** ./js/components/conversion-tracking/ConversionTrackingToggle.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ ConversionTrackingToggle)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_components_LoadingWrapper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/LoadingWrapper */ "./js/components/LoadingWrapper.js");
/* harmony import */ var _ConfirmDisableConversionTrackingDialog__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ConfirmDisableConversionTrackingDialog */ "./js/components/conversion-tracking/ConfirmDisableConversionTrackingDialog.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var _js_components_ErrorNotice__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/components/ErrorNotice */ "./js/components/ErrorNotice.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */










function ConversionTrackingToggle({
  children,
  loading
}) {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_6__["default"])();
  const [saveError] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_10__.useState)(null);
  const [showConfirmDialog, setShowConfirmDialog] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_10__.useState)(false);
  const isConversionTrackingEnabled = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_SITE).isConversionTrackingEnabled());
  const isSaving = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_SITE).isFetchingSaveConversionTrackingSettings());
  const {
    setConversionTrackingEnabled
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_SITE);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("div", {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_components_LoadingWrapper__WEBPACK_IMPORTED_MODULE_4__["default"], {
      loading: loading,
      width: "180px",
      height: "21.3px",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", {
        className: "googlesitekit-module-settings-group__switch",
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.Switch, {
          label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Plugin conversion tracking', 'google-site-kit'),
          checked: isConversionTrackingEnabled,
          disabled: isSaving || loading,
          onClick: () => {
            // If Conversion Tracking is currently enabled, show a confirmation
            // dialog warning users about the impact of disabling it.
            if (isConversionTrackingEnabled) {
              (0,_js_util__WEBPACK_IMPORTED_MODULE_7__.trackEvent)(`${viewContext}`, 'ect_disable');
              setShowConfirmDialog(true);
            } else {
              (0,_js_util__WEBPACK_IMPORTED_MODULE_7__.trackEvent)(`${viewContext}`, 'ect_enable');

              // Conversion Tracking is not currently enabled, so this toggle
              // enables it.
              setConversionTrackingEnabled(true);
            }
          },
          hideLabel: false
        })
      })
    }), !!saveError && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_components_ErrorNotice__WEBPACK_IMPORTED_MODULE_8__["default"], {
      message: saveError.message
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_components_LoadingWrapper__WEBPACK_IMPORTED_MODULE_4__["default"], {
      className: "googlesitekit-settings-conversion-tracking-switch-description--loading",
      loading: loading,
      width: "750px",
      height: "42px",
      smallWidth: "386px",
      smallHeight: "84px",
      tabletWidth: "540px",
      tabletHeight: "84px",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("p", {
        className: "googlesitekit-module-settings-group__helper-text",
        children: children
      })
    }), showConfirmDialog && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_ConfirmDisableConversionTrackingDialog__WEBPACK_IMPORTED_MODULE_5__["default"], {
      onConfirm: () => {
        (0,_js_util__WEBPACK_IMPORTED_MODULE_7__.trackEvent)(`${viewContext}`, 'ect_confirm_disable');
        setConversionTrackingEnabled(false);
        setShowConfirmDialog(false);
      },
      onCancel: () => {
        (0,_js_util__WEBPACK_IMPORTED_MODULE_7__.trackEvent)(`${viewContext}`, 'ect_cancel_disable');
        setShowConfirmDialog(false);
      }
    })]
  });
}
ConversionTrackingToggle.propTypes = {
  children: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().node).isRequired,
  loading: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().bool)
};

/***/ }),

/***/ "./js/components/conversion-tracking/SetupPluginConversionTrackingNotice.js":
/*!**********************************************************************************!*\
  !*** ./js/components/conversion-tracking/SetupPluginConversionTrackingNotice.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SetupPluginConversionTrackingNotice)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */



function SetupPluginConversionTrackingNotice({
  className,
  message
}) {
  const isCTEnabled = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_SITE).isConversionTrackingEnabled());
  if (isCTEnabled || isCTEnabled === undefined) {
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("p", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()(className, 'googlesitekit-color--surfaces-on-background-variant googlesitekit-plugin-conversion-tracking-notice'),
    children: message
  });
}

/***/ }),

/***/ "./js/components/google-tag-gateway/GoogleTagGatewayToggle.js":
/*!********************************************************************!*\
  !*** ./js/components/google-tag-gateway/GoogleTagGatewayToggle.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ GoogleTagGatewayToggle)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useMount.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_components_Badge__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/Badge */ "./js/components/Badge.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_util_withIntersectionObserver__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/util/withIntersectionObserver */ "./js/util/withIntersectionObserver.js");
/* harmony import */ var _js_components_Notice__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/components/Notice */ "./js/components/Notice/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Google Tag Gateway Toggle component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */










const SubtleNotificationWithIntersectionObserver = (0,_js_util_withIntersectionObserver__WEBPACK_IMPORTED_MODULE_9__["default"])(_js_components_Notice__WEBPACK_IMPORTED_MODULE_10__["default"]);
function GoogleTagGatewayToggle({
  className
}) {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_7__["default"])();
  const isGoogleTagGatewayEnabled = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_SITE).isGoogleTagGatewayEnabled());
  const isLoading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_SITE).isFetchingGetGTGServerRequirementStatus());
  const hasMetServerRequirements = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => {
    const {
      isGTGHealthy,
      isScriptAccessEnabled
    } = select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_SITE);
    return isGTGHealthy() !== false && isScriptAccessEnabled() !== false;
  });
  const {
    fetchGetGTGServerRequirementStatus,
    setGoogleTagGatewayEnabled
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useDispatch)(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_SITE);
  const learnMoreURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => {
    return select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_SITE).getDocumentationLinkURL('google-tag-gateway-introduction');
  });
  const serverRequirementsLearnMoreURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => {
    return select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_SITE).getDocumentationLinkURL('google-tag-gateway-server-requirements');
  });

  // Fetch the server requirement status on mount.
  (0,react_use__WEBPACK_IMPORTED_MODULE_12__["default"])(fetchGetGTGServerRequirementStatus);
  const handleClick = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_13__.useCallback)(() => {
    const action = isGoogleTagGatewayEnabled ? 'deactivate_google_tag_gateway' : 'activate_google_tag_gateway';
    (0,_js_util__WEBPACK_IMPORTED_MODULE_8__.trackEvent)(`${viewContext}_gtg-settings-toggle`, action).finally(() => {
      setGoogleTagGatewayEnabled(!isGoogleTagGatewayEnabled);
    });
  }, [isGoogleTagGatewayEnabled, setGoogleTagGatewayEnabled, viewContext]);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)("div", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-google-tag-gateway-toggle', className),
    children: [isLoading && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.ProgressBar, {
      className: "googlesitekit-google-tag-gateway-toggle__progress",
      small: true
    }), !isLoading && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)("div", {
      className: "googlesitekit-module-settings-group__switch",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.Switch, {
        label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Google tag gateway for advertisers', 'google-site-kit'),
        checked: !!isGoogleTagGatewayEnabled && hasMetServerRequirements,
        disabled: !hasMetServerRequirements,
        onClick: handleClick,
        hideLabel: false
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("div", {
        className: "googlesitekit-google-tag-gateway-toggle__switch-badge",
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_Badge__WEBPACK_IMPORTED_MODULE_5__["default"], {
          className: "googlesitekit-badge--beta",
          label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Beta', 'google-site-kit'),
          hasLeftSpacing: true
        })
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("p", {
      className: "googlesitekit-module-settings-group__helper-text",
      children: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_14__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Your tag data will be sent through your own domain to improve data quality and help you recover measurement signals. <a>Learn more</a>', 'google-site-kit'), {
        a: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_6__["default"], {
          href: learnMoreURL,
          onClick: () => {
            (0,_js_util__WEBPACK_IMPORTED_MODULE_8__.trackEvent)(`${viewContext}_gtg-settings-toggle`, 'click_learn_more_link');
          },
          "aria-label": (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Learn more about Google tag gateway for advertisers', 'google-site-kit'),
          external: true
        })
      })
    }), !isLoading && !hasMetServerRequirements && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(SubtleNotificationWithIntersectionObserver, {
      type: _js_components_Notice__WEBPACK_IMPORTED_MODULE_10__["default"].TYPES.WARNING,
      title: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_14__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Your server’s current settings prevent Google tag gateway for advertisers from working. To enable it, please contact your hosting provider and request access to external resources and plugin files. <a>Learn more</a>', 'google-site-kit'), {
        a: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_6__["default"], {
          href: serverRequirementsLearnMoreURL,
          onClick: () => {
            (0,_js_util__WEBPACK_IMPORTED_MODULE_8__.trackEvent)(`${viewContext}_gtg-settings-toggle-disabled`, 'click_learn_more_link');
          },
          "aria-label": (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Learn more about Google tag gateway for advertisers server requirements', 'google-site-kit'),
          external: true
        })
      }),
      variant: "warning",
      onInView: () => {
        (0,_js_util__WEBPACK_IMPORTED_MODULE_8__.trackEvent)(`${viewContext}_gtg-settings-toggle-disabled`, 'view_notice');
      }
    })]
  });
}

/***/ }),

/***/ "./js/components/notifications/CTA.js":
/*!********************************************!*\
  !*** ./js/components/notifications/CTA.js ***!
  \********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_components_Typography__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/components/Typography */ "./js/components/Typography/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * CTA component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Internal dependencies
 */




function CTA({
  title,
  headerText,
  headerContent,
  description,
  ctaLink,
  ctaLabel,
  ctaLinkExternal,
  ctaType,
  error,
  onClick,
  'aria-label': ariaLabel,
  children
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-cta', {
      'googlesitekit-cta--error': error
    }),
    children: [(headerText || headerContent) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", {
      className: "googlesitekit-cta__header",
      children: [headerText && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_3__["default"], {
        as: "h2",
        size: "small",
        type: "label",
        className: "googlesitekit-cta__header_text",
        children: headerText
      }), headerContent]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", {
      className: "googlesitekit-cta__body",
      children: [title && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_3__["default"], {
        as: "h3",
        size: "small",
        type: "title",
        className: "googlesitekit-cta__title",
        children: title
      }), description && typeof description === 'string' && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("p", {
        className: "googlesitekit-cta__description",
        children: description
      }), description && typeof description !== 'string' && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("div", {
        className: "googlesitekit-cta__description",
        children: description
      }), ctaLabel && ctaType === 'button' && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.Button, {
        "aria-label": ariaLabel,
        href: ctaLink,
        onClick: onClick,
        children: ctaLabel
      }), ctaLabel && ctaType === 'link' && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_2__["default"], {
        href: ctaLink,
        onClick: onClick,
        "aria-label": ariaLabel,
        external: ctaLinkExternal,
        hideExternalIndicator: ctaLinkExternal,
        arrow: true,
        children: ctaLabel
      }), children]
    })]
  });
}
CTA.propTypes = {
  title: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string).isRequired,
  headerText: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string),
  description: prop_types__WEBPACK_IMPORTED_MODULE_5___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_5___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_5___default().node)]),
  ctaLink: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string),
  ctaLinkExternal: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().bool),
  ctaLabel: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string),
  ctaType: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string),
  'aria-label': (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string),
  error: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().bool),
  onClick: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().func),
  children: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().node),
  headerContent: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().node)
};
CTA.defaultProps = {
  title: '',
  headerText: '',
  headerContent: '',
  description: '',
  ctaLink: '',
  ctaLabel: '',
  ctaType: 'link',
  error: false,
  onClick: () => {}
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CTA);

/***/ }),

/***/ "./js/components/settings/EntityOwnershipChangeNotice.js":
/*!***************************************************************!*\
  !*** ./js/components/settings/EntityOwnershipChangeNotice.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ EntityOwnershipChangeNotice)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_components_Notice__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/Notice */ "./js/components/Notice/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * EntityOwnershipChangeNotice component.
 *
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */






function EntityOwnershipChangeNotice({
  slug
}) {
  const slugs = Array.isArray(slug) ? slug : [slug];
  const storeNames = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    const {
      getModuleStoreName,
      getSharedRoles
    } = select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_MODULES);
    return slugs
    // Filter out modules that don't have any shared roles.
    .filter(currentSlug => {
      return !!getSharedRoles(currentSlug)?.length;
    }).reduce((acc, currentSlug) => {
      const storeName = getModuleStoreName(currentSlug);
      if (storeName) {
        return {
          ...acc,
          [currentSlug]: storeName
        };
      }
      return acc;
    }, {});
  });
  const haveOwnedSettingsChanged = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => Object.keys(storeNames).reduce((acc, currentSlug) => {
    const storeName = storeNames[currentSlug];
    const moduleOwnerID = select(storeName)?.getOwnerID();
    const loggedInUserID = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).getID();
    const haveSettingsChanged = select(storeName)?.haveOwnedSettingsChanged();
    if (haveSettingsChanged && moduleOwnerID !== loggedInUserID) {
      acc[currentSlug] = haveSettingsChanged;
    }
    return acc;
  }, {}));
  const haveModulesChanged = Object.values(haveOwnedSettingsChanged).some(hasChanged => hasChanged);
  const moduleNames = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    return Object.keys(haveOwnedSettingsChanged).reduce((acc, moduleSlug) => {
      const module = select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_MODULES).getModule(moduleSlug);
      if (module) {
        acc.push(module.name);
      }
      return acc;
    }, []);
  });
  if (!haveModulesChanged) {
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_js_components_Notice__WEBPACK_IMPORTED_MODULE_5__["default"], {
    className: "googlesitekit-notice--bottom-margin",
    type: _js_components_Notice__WEBPACK_IMPORTED_MODULE_5__["default"].TYPES.WARNING,
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: module name. */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('By clicking confirm changes, you’re granting other users view-only access to data from %s via your Google account. You can always manage this later in the dashboard sharing settings.', 'google-site-kit'), (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.listFormat)(moduleNames))
  });
}
EntityOwnershipChangeNotice.propTypes = {
  slug: prop_types__WEBPACK_IMPORTED_MODULE_7___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_7___default().string), prop_types__WEBPACK_IMPORTED_MODULE_7___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_7___default().string))]).isRequired
};

/***/ }),

/***/ "./js/components/settings/SettingsGroup.js":
/*!*************************************************!*\
  !*** ./js/components/settings/SettingsGroup.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SettingsGroup)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_components_Typography__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/components/Typography */ "./js/components/Typography/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * SettingsInactiveModules component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



function SettingsGroup({
  title,
  children
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
    className: "googlesitekit-module-settings-group",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_0__["default"], {
      as: "h4",
      size: "medium",
      type: "title",
      children: title
    }), children]
  });
}
SettingsGroup.propTypes = {
  title: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,
  children: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().node).isRequired
};

/***/ }),

/***/ "./js/components/settings/SettingsStatuses.js":
/*!****************************************************!*\
  !*** ./js/components/settings/SettingsStatuses.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SettingsStatuses)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_components_Typography__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/Typography */ "./js/components/Typography/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * SettingsStatuses component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



function SettingsStatuses({
  statuses
}) {
  if (!statuses || statuses.length === 0) {
    return null;
  }
  function renderStatus(status) {
    if (status === undefined) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
        className: "googlesitekit-settings-module__meta-item-data",
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.ProgressBar, {})
      });
    }
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("p", {
      className: "googlesitekit-settings-module__meta-item-data",
      children: status ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Enabled', 'google-site-kit') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Disabled', 'google-site-kit')
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("div", {
    className: "googlesitekit-settings-module__meta-items",
    children: statuses.map(({
      label,
      status
    }) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", {
      className: "googlesitekit-settings-module__meta-item",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_2__["default"], {
        as: "h5",
        size: "medium",
        type: "label",
        className: "googlesitekit-settings-module__meta-item-type",
        children: label
      }), renderStatus(status)]
    }, label))
  });
}
SettingsStatuses.propTypes = {
  statuses: prop_types__WEBPACK_IMPORTED_MODULE_4___default().arrayOf(prop_types__WEBPACK_IMPORTED_MODULE_4___default().shape({
    label: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,
    status: prop_types__WEBPACK_IMPORTED_MODULE_4___default().oneOf([undefined, true, false])
  }))
};

/***/ }),

/***/ "./js/components/setup/StepHint/index.js":
/*!***********************************************!*\
  !*** ./js/components/setup/StepHint/index.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ StepHint)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_components_InfoTooltip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/components/InfoTooltip */ "./js/components/InfoTooltip.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * SetupUsingProxyWithSignIn StepHint component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */


function StepHint({
  leadingText,
  tooltipText
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
    className: "googlesitekit-setup__step-hint",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("p", {
      children: leadingText
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_js_components_InfoTooltip__WEBPACK_IMPORTED_MODULE_0__["default"], {
      tooltipClassName: "googlesitekit-setup__step-hint-tooltip",
      title: tooltipText
    })]
  });
}
StepHint.propTypes = {
  leadingText: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_2___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_2___default().element)]).isRequired,
  tooltipText: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_2___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_2___default().element)]).isRequired
};

/***/ }),

/***/ "./js/components/surveys/SurveyViewTrigger.js":
/*!****************************************************!*\
  !*** ./js/components/surveys/SurveyViewTrigger.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SurveyViewTrigger)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/**
 * SurveyViewTrigger component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * External dependencies
 */


/**
 * Internal dependencies
 */


function SurveyViewTrigger({
  triggerID,
  ttl = 0
}) {
  const {
    triggerSurvey
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useEffect)(() => {
    triggerSurvey(triggerID, {
      ttl
    });
  }, [triggerID, ttl, triggerSurvey]);
  return null;
}
SurveyViewTrigger.propTypes = {
  triggerID: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,
  ttl: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number)
};

/***/ }),

/***/ "./js/components/user-input/util/constants.js":
/*!****************************************************!*\
  !*** ./js/components/user-input/util/constants.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   FORM_USER_INPUT_QUESTION_NUMBER: () => (/* binding */ FORM_USER_INPUT_QUESTION_NUMBER),
/* harmony export */   FORM_USER_INPUT_QUESTION_SNAPSHOT: () => (/* binding */ FORM_USER_INPUT_QUESTION_SNAPSHOT),
/* harmony export */   USER_INPUT_CURRENTLY_EDITING_KEY: () => (/* binding */ USER_INPUT_CURRENTLY_EDITING_KEY),
/* harmony export */   USER_INPUT_LEGACY_SITE_PURPOSE_DISMISSED_ITEM_KEY: () => (/* binding */ USER_INPUT_LEGACY_SITE_PURPOSE_DISMISSED_ITEM_KEY),
/* harmony export */   USER_INPUT_MAX_ANSWERS: () => (/* binding */ USER_INPUT_MAX_ANSWERS),
/* harmony export */   USER_INPUT_PURPOSE_TO_CONVERSION_EVENTS_MAPPING: () => (/* binding */ USER_INPUT_PURPOSE_TO_CONVERSION_EVENTS_MAPPING),
/* harmony export */   USER_INPUT_QUESTIONS_GOALS: () => (/* binding */ USER_INPUT_QUESTIONS_GOALS),
/* harmony export */   USER_INPUT_QUESTIONS_LIST: () => (/* binding */ USER_INPUT_QUESTIONS_LIST),
/* harmony export */   USER_INPUT_QUESTIONS_PURPOSE: () => (/* binding */ USER_INPUT_QUESTIONS_PURPOSE),
/* harmony export */   USER_INPUT_QUESTION_POST_FREQUENCY: () => (/* binding */ USER_INPUT_QUESTION_POST_FREQUENCY),
/* harmony export */   getUserInputAnswers: () => (/* binding */ getUserInputAnswers),
/* harmony export */   getUserInputAnswersDescription: () => (/* binding */ getUserInputAnswersDescription),
/* harmony export */   getUserInputQuestions: () => (/* binding */ getUserInputQuestions)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/**
 * User Input Answers.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */

const USER_INPUT_QUESTIONS_PURPOSE = 'purpose';
const USER_INPUT_QUESTION_POST_FREQUENCY = 'postFrequency';
const USER_INPUT_QUESTIONS_GOALS = 'goals';
const USER_INPUT_QUESTIONS_LIST = [USER_INPUT_QUESTIONS_PURPOSE, USER_INPUT_QUESTION_POST_FREQUENCY, USER_INPUT_QUESTIONS_GOALS];
const USER_INPUT_MAX_ANSWERS = {
  [USER_INPUT_QUESTIONS_PURPOSE]: 1,
  [USER_INPUT_QUESTION_POST_FREQUENCY]: 1,
  [USER_INPUT_QUESTIONS_GOALS]: 3
};
const USER_INPUT_CURRENTLY_EDITING_KEY = 'googlesitekit-user-input-currently-editing';
const FORM_USER_INPUT_QUESTION_NUMBER = 'user_input_question_number';
const FORM_USER_INPUT_QUESTION_SNAPSHOT = 'user_input_question_snapshot';
const USER_INPUT_LEGACY_SITE_PURPOSE_DISMISSED_ITEM_KEY = 'user-input-legacy-site-purpose-dismissed-item';
const USER_INPUT_PURPOSE_TO_CONVERSION_EVENTS_MAPPING = {
  publish_blog: [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.ENUM_CONVERSION_EVENTS.CONTACT, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.ENUM_CONVERSION_EVENTS.GENERATE_LEAD, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.ENUM_CONVERSION_EVENTS.SUBMIT_LEAD_FORM],
  publish_news: [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.ENUM_CONVERSION_EVENTS.CONTACT, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.ENUM_CONVERSION_EVENTS.GENERATE_LEAD, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.ENUM_CONVERSION_EVENTS.SUBMIT_LEAD_FORM],
  monetize_content: [],
  sell_products_or_service: [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.ENUM_CONVERSION_EVENTS.PURCHASE, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.ENUM_CONVERSION_EVENTS.ADD_TO_CART],
  sell_products: [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.ENUM_CONVERSION_EVENTS.PURCHASE, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.ENUM_CONVERSION_EVENTS.ADD_TO_CART],
  provide_services: [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.ENUM_CONVERSION_EVENTS.CONTACT, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.ENUM_CONVERSION_EVENTS.GENERATE_LEAD, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.ENUM_CONVERSION_EVENTS.SUBMIT_LEAD_FORM],
  share_portfolio: [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.ENUM_CONVERSION_EVENTS.CONTACT, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.ENUM_CONVERSION_EVENTS.GENERATE_LEAD, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.ENUM_CONVERSION_EVENTS.SUBMIT_LEAD_FORM],
  other: []
};

/**
 * Gets available questions for user input settings.
 *
 * @since 1.139.0
 * @private
 *
 * @return {Object} Questions object.
 */
function getUserInputQuestions() {
  const description = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Based on your answer, Site Kit will suggest the metrics you see on your dashboard to help you track how close you’re getting to your specific goals', 'google-site-kit');
  return [{
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('What is the main purpose of this site?', 'google-site-kit'),
    description
  }, {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('How often do you create new content for this site?', 'google-site-kit'),
    description
  }, {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('What are your top 3 goals for this site?', 'google-site-kit'),
    description
  }];
}

/**
 * Gets available answers for user input settings.
 *
 * @since 1.20.0
 * @private
 *
 * @return {Object} Answers object.
 */
function getUserInputAnswers() {
  return {
    USER_INPUT_ANSWERS_PURPOSE: {
      sell_products_or_service: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Sell products or services', 'google-site-kit'),
      sell_products: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Sell products', 'google-site-kit'),
      provide_services: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Provide services', 'google-site-kit'),
      monetize_content: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Monetize content', 'google-site-kit'),
      publish_blog: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Publish a blog', 'google-site-kit'),
      publish_news: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Publish news content', 'google-site-kit'),
      share_portfolio: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Portfolio or business card', 'google-site-kit'),
      other: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Other', 'google-site-kit')
    },
    USER_INPUT_ANSWERS_POST_FREQUENCY: {
      never: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Never', 'google-site-kit'),
      daily: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Daily', 'google-site-kit'),
      weekly: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Weekly', 'google-site-kit'),
      monthly: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Monthly', 'google-site-kit'),
      other: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Other', 'google-site-kit')
    },
    USER_INPUT_ANSWERS_GOALS: {
      retaining_visitors: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Retain visitors, turn them into loyal readers or customers', 'google-site-kit'),
      improving_performance: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Improve speed and performance', 'google-site-kit'),
      finding_new_topics: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Find new topics to write about that connect with my audience', 'google-site-kit'),
      growing_audience: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Grow my audience', 'google-site-kit'),
      expanding_business: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Expand my business into new cities, states or markets', 'google-site-kit'),
      generating_revenue: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Generate more revenue', 'google-site-kit'),
      generating_leads: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Generate leads', 'google-site-kit'),
      help_better_rank: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Help my content rank in a better position in Google search results', 'google-site-kit'),
      understanding_content_performance: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Understand which content is performing best', 'google-site-kit'),
      encourage_to_post: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Encouragement to post more frequently', 'google-site-kit'),
      other: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Other', 'google-site-kit')
    }
  };
}

/**
 * Gets available answer descriptions for user input settings.
 *
 * @since 1.139.0
 * @private
 *
 * @return {Object} Answer descriptions object.
 */
function getUserInputAnswersDescription() {
  return {
    USER_INPUT_ANSWERS_PURPOSE: {
      sell_products_or_service: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('E.g. selling products like devices, apparel, equipment, etc. or offering services like courses, consulting, tutoring, etc.', 'google-site-kit'),
      sell_products: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('E.g. selling devices, apparel, equipment, etc.', 'google-site-kit'),
      provide_services: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('E.g. offering courses, consulting, tutoring, etc.', 'google-site-kit'),
      monetize_content: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Using display ads, affiliate links, sponsored content, etc.', 'google-site-kit'),
      publish_blog: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Writing on a topic you’re passionate about, no focus on monetizing content', 'google-site-kit'),
      publish_news: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('E.g. local news, investigative pieces, interviews, etc.', 'google-site-kit'),
      share_portfolio: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('My website represents me or my company', 'google-site-kit'),
      other: undefined
    }
  };
}

/***/ }),

/***/ "./js/feature-tours/shared-key-metrics.js":
/*!************************************************!*\
  !*** ./js/feature-tours/shared-key-metrics.js ***!
  \************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/constants */ "./js/googlesitekit/constants.js");
/**
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/*
 * Internal dependencies
 */

const sharedKeyMetrics = {
  slug: 'sharedKeyMetrics',
  contexts: [_js_googlesitekit_constants__WEBPACK_IMPORTED_MODULE_1__.VIEW_CONTEXT_MAIN_DASHBOARD, _js_googlesitekit_constants__WEBPACK_IMPORTED_MODULE_1__.VIEW_CONTEXT_MAIN_DASHBOARD_VIEW_ONLY, _js_googlesitekit_constants__WEBPACK_IMPORTED_MODULE_1__.VIEW_CONTEXT_ENTITY_DASHBOARD, _js_googlesitekit_constants__WEBPACK_IMPORTED_MODULE_1__.VIEW_CONTEXT_ENTITY_DASHBOARD_VIEW_ONLY],
  gaEventCategory: viewContext => `${viewContext}_shared_key-metrics`,
  steps: [{
    target: '.googlesitekit-km-change-metrics-cta',
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Personalize your key metrics', 'google-site-kit'),
    content: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Another admin has set up these tailored metrics for your site. Click here to personalize them.', 'google-site-kit'),
    placement: 'bottom-start'
  }]
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (sharedKeyMetrics);

/***/ }),

/***/ "./js/features/index.js":
/*!******************************!*\
  !*** ./js/features/index.js ***!
  \******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   enabledFeatures: () => (/* binding */ enabledFeatures),
/* harmony export */   isFeatureEnabled: () => (/* binding */ isFeatureEnabled)
/* harmony export */ });
/**
 * Feature flags.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const enabledFeatures = new Set(__webpack_require__.g?._googlesitekitBaseData?.enabledFeatures || []);

/**
 * Returns true if a feature is enabled; false otherwise.
 *
 * @since 1.25.0
 * @since 1.33.0 Changed _enabledFeatures argument to be a `Set` instead of `Array`.
 *
 * @param {string} feature            The name of the feature to check.
 * @param {Set}    [_enabledFeatures] Optional. The set of enabled features. Uses `enabledFeatures` set by the server in a global JS variable, by default.
 * @return {boolean} `true` if a feature is enabled; `false` otherwise.
 */
function isFeatureEnabled(feature, _enabledFeatures = enabledFeatures) {
  if (!(_enabledFeatures instanceof Set)) {
    return false;
  }
  return _enabledFeatures.has(feature);
}

/***/ }),

/***/ "./js/googlesitekit-data.js":
/*!**********************************!*\
  !*** ./js/googlesitekit-data.js ***!
  \**********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   RegistryProvider: () => (/* reexport safe */ _googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.RegistryProvider),
/* harmony export */   combineStores: () => (/* reexport safe */ _googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.combineStores),
/* harmony export */   commonActions: () => (/* reexport safe */ _googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.commonActions),
/* harmony export */   commonControls: () => (/* reexport safe */ _googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.commonControls),
/* harmony export */   commonStore: () => (/* reexport safe */ _googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.commonStore),
/* harmony export */   controls: () => (/* reexport safe */ _googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.controls),
/* harmony export */   createReducer: () => (/* reexport safe */ _googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.createReducer),
/* harmony export */   createRegistryControl: () => (/* reexport safe */ _googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.createRegistryControl),
/* harmony export */   createRegistrySelector: () => (/* reexport safe */ _googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.createRegistrySelector),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */   useDispatch: () => (/* reexport safe */ _googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch),
/* harmony export */   useInViewSelect: () => (/* reexport safe */ _googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect),
/* harmony export */   useRegistry: () => (/* reexport safe */ _googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useRegistry),
/* harmony export */   useSelect: () => (/* reexport safe */ _googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect),
/* harmony export */   withDispatch: () => (/* reexport safe */ _googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.withDispatch),
/* harmony export */   withSelect: () => (/* reexport safe */ _googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.withSelect)
/* harmony export */ });
/* harmony import */ var _googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./googlesitekit/data */ "./js/googlesitekit/data/index.js");
/**
 * Public Data store entrypoint.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */

if (typeof __webpack_require__.g.googlesitekit === 'undefined') {
  __webpack_require__.g.googlesitekit = {};
}
__webpack_require__.g.googlesitekit.data = _googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__["default"];

// This is only exported for Jest and is not used in production.
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__["default"]);


/***/ }),

/***/ "./js/googlesitekit-modules-analytics-4.js":
/*!*************************************************!*\
  !*** ./js/googlesitekit-modules-analytics-4.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-modules */ "googlesitekit-modules");
/* harmony import */ var googlesitekit_modules__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_modules__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_widgets__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-widgets */ "googlesitekit-widgets");
/* harmony import */ var googlesitekit_widgets__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_widgets__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var googlesitekit_notifications__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! googlesitekit-notifications */ "googlesitekit-notifications");
/* harmony import */ var googlesitekit_notifications__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_notifications__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _modules_analytics_4__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modules/analytics-4 */ "./js/modules/analytics-4/index.js");
/**
 * Analytics-4 module entrypoint.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */





(0,_modules_analytics_4__WEBPACK_IMPORTED_MODULE_4__.registerStore)((googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default()));
(0,_modules_analytics_4__WEBPACK_IMPORTED_MODULE_4__.registerModule)((googlesitekit_modules__WEBPACK_IMPORTED_MODULE_1___default()));
(0,_modules_analytics_4__WEBPACK_IMPORTED_MODULE_4__.registerWidgets)((googlesitekit_widgets__WEBPACK_IMPORTED_MODULE_2___default()));
(0,_modules_analytics_4__WEBPACK_IMPORTED_MODULE_4__.registerNotifications)((googlesitekit_notifications__WEBPACK_IMPORTED_MODULE_3___default()));

/***/ }),

/***/ "./js/googlesitekit/api/cache.js":
/*!***************************************!*\
  !*** ./js/googlesitekit/api/cache.js ***!
  \***************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   STORAGE_KEY_PREFIX: () => (/* binding */ STORAGE_KEY_PREFIX),
/* harmony export */   STORAGE_KEY_PREFIX_ROOT: () => (/* binding */ STORAGE_KEY_PREFIX_ROOT),
/* harmony export */   clearCache: () => (/* binding */ clearCache),
/* harmony export */   deleteItem: () => (/* binding */ deleteItem),
/* harmony export */   getItem: () => (/* binding */ getItem),
/* harmony export */   getKeys: () => (/* binding */ getKeys),
/* harmony export */   getStorage: () => (/* binding */ getStorage),
/* harmony export */   isStorageAvailable: () => (/* binding */ isStorageAvailable),
/* harmony export */   resetDefaultStorageOrder: () => (/* binding */ resetDefaultStorageOrder),
/* harmony export */   setItem: () => (/* binding */ setItem),
/* harmony export */   setSelectedStorageBackend: () => (/* binding */ setSelectedStorageBackend),
/* harmony export */   setStorageOrder: () => (/* binding */ setStorageOrder)
/* harmony export */ });
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/**
 * Caching functions and cache management for API requests.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */


/**
 * Prefix used for all Site Kit keys.
 *
 * Anything not using this prefix should not be touched by this library.
 *
 * @since 1.96.0
 * @private
 */
const STORAGE_KEY_PREFIX_ROOT = 'googlesitekit_';

/**
 * Prefix used for all Site Kit keys for the current Site Kit version.
 *
 * Anything not using this key should not be touched by this library.
 *
 * @since 1.5.0
 * @since 1.92.0 Updated to include a user, session, and blog-specific hash.
 * @since 1.96.0 Updated to make use of the new STORAGE_KEY_PREFIX_ROOT constant.
 * @private
 */
const STORAGE_KEY_PREFIX = `${STORAGE_KEY_PREFIX_ROOT}${"1.168.0"}_${__webpack_require__.g._googlesitekitBaseData.storagePrefix}_`;
const defaultOrder = ['sessionStorage', 'localStorage'];
let storageBackend;
let storageOrder = [...defaultOrder];

/**
 * Overrides the storage backend.
 *
 * Largely used for tests. Should not be used directly.
 *
 * @since 1.5.0
 * @private
 *
 * @param {*} backend Backend to set for the cache.
 */
function setSelectedStorageBackend(backend) {
  storageBackend = backend;
}

/**
 * Overrides the priority of storage mechanisms.
 *
 * Largely used for tests. Implicitly resets the selected storage backend,
 * causing `_getStorage` to re-run its checks for the best available
 * storage backend.
 *
 * @since 1.5.0
 * @private
 *
 * @param {Array} order Ordered array of storage backends to use.
 */
function setStorageOrder(order) {
  storageOrder = [...order];
  setSelectedStorageBackend(undefined);
}

/**
 * Resets the storage mechanism order.
 *
 * Largely used for tests. Implicitly resets the selected storage backend,
 * causing `_getStorage` to re-run its checks for the best available
 * storage backend.
 *
 * @since 1.5.0
 * @private
 */
function resetDefaultStorageOrder() {
  storageOrder = [...defaultOrder];
  setSelectedStorageBackend(undefined);
}

/**
 * Detects whether browser storage is both supported and available.
 *
 * @since 1.5.0
 * @private
 *
 * @param {string} type Browser storage to test. Should be one of `localStorage` or `sessionStorage`.
 * @return {boolean} True if the given storage is available, false otherwise.
 */
// eslint-disable-next-line require-await
async function isStorageAvailable(type) {
  const storage = __webpack_require__.g[type];
  if (!storage) {
    return false;
  }
  try {
    const x = '__storage_test__';
    storage.setItem(x, x);
    storage.removeItem(x);
    return true;
  } catch (e) {
    return e instanceof DOMException && (
    // everything except Firefox
    22 === e.code ||
    // Firefox
    1014 === e.code ||
    // test name field too, because code might not be present
    // everything except Firefox
    'QuotaExceededError' === e.name ||
    // Firefox
    'NS_ERROR_DOM_QUOTA_REACHED' === e.name) &&
    // acknowledge QuotaExceededError only if there's something already stored
    0 !== storage.length;
  }
}

/**
 * Gets the storage object to use.
 *
 * @since 1.5.0
 * @private
 *
 * @return {Storage|null} A storage mechanism (`localStorage` or `sessionStorage`) if available; otherwise returns `null`.
 */
async function getStorage() {
  if (storageBackend !== undefined) {
    return storageBackend;
  }

  // Only run the logic to determine the storage object once.
  for (const backend of storageOrder) {
    if (storageBackend) {
      continue;
    }
    if (await isStorageAvailable(backend)) {
      storageBackend = __webpack_require__.g[backend];
    }
  }
  if (storageBackend === undefined) {
    storageBackend = null;
  }
  return storageBackend;
}

/**
 * Gets cached data.
 *
 * Get cached data from the persistent storage cache.
 *
 * @since 1.5.0
 *
 * @param {string} key Name of cache key.
 * @return {Promise} A promise returned, containing an object with the cached value (if found) and whether or not there was a cache hit.
 */
async function getItem(key) {
  const storage = await getStorage();
  if (storage) {
    const cachedData = storage.getItem(`${STORAGE_KEY_PREFIX}${key}`);
    if (cachedData) {
      const parsedData = JSON.parse(cachedData);
      const {
        timestamp,
        ttl,
        value,
        isError
      } = parsedData;

      // Ensure a timestamp is found, otherwise this isn't a valid cache hit.
      // (We don't check for a truthy `value`, because it could be legitimately
      // false-y if `0`, `null`, etc.)
      if (timestamp && (!ttl ||
      // Ensure the cached data isn't too old.
      // The cache dates shouldn't rely on reference
      // dates for cache expiration. This is a case
      // where we actually want to rely on
      // the _actual_ date/time the data was set.
      Math.round(Date.now() / 1000) - timestamp < ttl) // eslint-disable-line sitekit/no-direct-date
      ) {
        return {
          cacheHit: true,
          value,
          isError
        };
      }
    }
  }
  return {
    cacheHit: false,
    value: undefined
  };
}

/**
 * Sets cached data using a key.
 *
 * Save data to the relevant local storage mechanism, if available.
 * By default, data is saved with a one hour (60 minute) TTL.
 *
 * @since 1.5.0
 *
 * @param {string}  key              Name of cache key.
 * @param {*}       value            Value to store in the cache.
 * @param {Object}  args             Optional object containing ttl, timestamp and isError keys.
 * @param {number}  [args.ttl]       Optional. Validity of the cached item in seconds.
 * @param {number}  [args.timestamp] Optional. Timestamp when the cached item was created.
 * @param {boolean} [args.isError]   Optional. Whether the cached item is an error.
 * @return {Promise} A promise: resolves to `true` if the value was saved; `false` if not (usually because no storage method was available).
 */
async function setItem(key, value, {
  ttl = _js_util__WEBPACK_IMPORTED_MODULE_0__.HOUR_IN_SECONDS,
  // Cached times should rely on real times, not the reference date,
  // so the cache timeouts are consistent even when changing
  // the reference dates when developing/testing.
  timestamp = Math.round(Date.now() / 1000),
  // eslint-disable-line sitekit/no-direct-date
  isError = false
} = {}) {
  const storage = await getStorage();
  if (storage) {
    try {
      storage.setItem(`${STORAGE_KEY_PREFIX}${key}`, JSON.stringify({
        timestamp,
        ttl,
        value,
        isError
      }));
      return true;
    } catch (error) {
      __webpack_require__.g.console.warn('Encountered an unexpected storage error:', error);
      return false;
    }
  }
  return false;
}

/**
 * Removes cached data by key.
 *
 * Remove one piece of cached data from the persistent storage cache, by key.
 *
 * @since 1.5.0
 *
 * @param {string} key Name of cache key.
 * @return {Promise} A promise: resolves to `true` if the value was deleted; `false` if not (usually because no storage method was available).
 */
async function deleteItem(key) {
  const storage = await getStorage();
  if (storage) {
    try {
      const fullKey = key.startsWith(STORAGE_KEY_PREFIX_ROOT) ? key : `${STORAGE_KEY_PREFIX}${key}`;
      storage.removeItem(fullKey);
      return true;
    } catch (error) {
      __webpack_require__.g.console.warn('Encountered an unexpected storage error:', error);
      return false;
    }
  }
  return false;
}

/**
 * Gets all cache keys created by Site Kit.
 *
 * @since 1.5.0
 *
 * @return {Promise} A promise: resolves to an array of all keys.
 */
async function getKeys() {
  const storage = await getStorage();
  if (storage) {
    try {
      const keys = [];
      for (let i = 0; i < storage.length; i++) {
        const itemKey = storage.key(i);
        if (itemKey.indexOf(STORAGE_KEY_PREFIX_ROOT) === 0) {
          keys.push(itemKey);
        }
      }
      return keys;
    } catch (error) {
      __webpack_require__.g.console.warn('Encountered an unexpected storage error:', error);
      return [];
    }
  }
  return [];
}

/**
 * Removes the entire cache created by Site Kit.
 *
 * @since 1.5.0
 *
 * @return {Promise} A promise: resolves to `true` if the cache was cleared; `false` if there was an error.
 */
async function clearCache() {
  const storage = await getStorage();
  if (storage) {
    const keys = await getKeys();
    for (const key of keys) {
      await deleteItem(key);
    }
    return true;
  }
  return false;
}

/***/ }),

/***/ "./js/googlesitekit/api/middleware/deduplication.ts":
/*!**********************************************************!*\
  !*** ./js/googlesitekit/api/middleware/deduplication.ts ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */   logDuplicate: () => (/* binding */ logDuplicate)
/* harmony export */ });
/* harmony import */ var equivalent_key_map__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! equivalent-key-map */ "../node_modules/equivalent-key-map/equivalent-key-map.js");
/* harmony import */ var equivalent_key_map__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(equivalent_key_map__WEBPACK_IMPORTED_MODULE_0__);
/**
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */

/**
 * Logs a console warning for the given request options.
 *
 * @since n.e.x.t
 *
 * @param  options API fetch options of the duplicate request.
 * @return {void}
 */
function logDuplicate(options) {
  __webpack_require__.g.console.warn('Google Site Kit API: duplicate request', options);
}
/**
 * Creates a new request deduplication middleware instance.
 *
 * @since n.e.x.t
 *
 * @param middlewareOptions Options for configuring the behavior of the middleware.
 * @return Middleware handler function.
 */
function createDedupeMiddleware(middlewareOptions = {}) {
  const {
    onDuplicate
  } = middlewareOptions;
  const concurrentRequests = new (equivalent_key_map__WEBPACK_IMPORTED_MODULE_0___default())();
  return function (options, next) {
    // If we already have a request for these options
    // call the handler, if any, and return the shared response.
    const existingRequest = concurrentRequests.get(options);
    // EquivalentKeyMap doesn't implement `has` as expected, so we need to check the value.
    // When deleting, the value is set to `undefined` so `has(key)` remains true.
    if (existingRequest instanceof Promise) {
      onDuplicate?.(options);
      return existingRequest;
    }
    const promise = next(options);
    concurrentRequests.set(options, promise);

    // Ensure the request entry is removed once the request
    // is completed regardless of any error.
    promise.catch(() => {
      // avoid an uncaught error here
    }).finally(() => {
      concurrentRequests.delete(options);
    });
    return promise;
  };
}
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createDedupeMiddleware);

/***/ }),

/***/ "./js/googlesitekit/api/middleware/preloading.js":
/*!*******************************************************!*\
  !*** ./js/googlesitekit/api/middleware/preloading.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/url */ "../node_modules/@wordpress/url/build-module/normalize-path.js");
/**
 * Custom preloading middleware.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies.
 */


/**
 * Creates a preloading middleware.
 *
 * Based on preloadMiddleware from from @wordpress/api-fetch, this middle is a single-use per-endpoint and provides cached
 * data for the first request only and any subsequent requests reach the server.
 *
 * @since 1.13.0
 *
 * @param {Object} preloadedData Preloaded data paths.
 * @return {Function} Function.
 */
function createPreloadingMiddleware(preloadedData) {
  const cache = Object.keys(preloadedData).reduce((result, path) => {
    result[(0,_wordpress_url__WEBPACK_IMPORTED_MODULE_0__.normalizePath)(path)] = preloadedData[path];
    return result;
  }, {});
  let cacheHasExpired = false;
  return (options, next) => {
    if (cacheHasExpired) {
      return next(options);
    }
    setTimeout(() => {
      cacheHasExpired = true;
    }, 3000);
    const {
      parse = true
    } = options;
    const uri = options.path;
    if (typeof options.path === 'string') {
      const method = options.method?.toUpperCase() || 'GET';
      const path = (0,_wordpress_url__WEBPACK_IMPORTED_MODULE_0__.normalizePath)(uri);
      if (parse && 'GET' === method && cache[path]) {
        const result = Promise.resolve(cache[path].body);
        delete cache[path];
        return result;
      } else if ('OPTIONS' === method && cache[method] && cache[method][path]) {
        const result = Promise.resolve(cache[method][path]);
        delete cache[method][path];
        return result;
      }
    }
    return next(options);
  };
}
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createPreloadingMiddleware);

/***/ }),

/***/ "./js/googlesitekit/components-gm2/Button/MaybeTooltip.js":
/*!****************************************************************!*\
  !*** ./js/googlesitekit/components-gm2/Button/MaybeTooltip.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ MaybeTooltip)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_googlesitekit_components_gm2_Tooltip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/googlesitekit/components-gm2/Tooltip */ "./js/googlesitekit/components-gm2/Tooltip.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * MaybeTooltip component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */


function MaybeTooltip({
  children,
  disabled = false,
  tooltip = false,
  tooltipTitle = null,
  hasIconOnly = false,
  tooltipEnterDelayInMS = 100
}) {
  if (!disabled && (tooltip && tooltipTitle || hasIconOnly && tooltipTitle)) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_js_googlesitekit_components_gm2_Tooltip__WEBPACK_IMPORTED_MODULE_0__["default"], {
      title: tooltipTitle,
      enterDelay: tooltipEnterDelayInMS,
      children: children
    });
  }
  return children;
}
MaybeTooltip.propTypes = {
  children: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().node).isRequired,
  disabled: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),
  tooltip: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),
  tooltipTitle: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_2___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_2___default().element)]),
  hasIconOnly: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),
  tooltipEnterDelayInMS: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().number)
};

/***/ }),

/***/ "./js/googlesitekit/components-gm2/Button/SemanticButton.js":
/*!******************************************************************!*\
  !*** ./js/googlesitekit/components-gm2/Button/SemanticButton.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * SemanticButton component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


const SemanticButton = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.forwardRef)(({
  children,
  href,
  text,
  className,
  danger,
  disabled,
  target,
  'aria-label': ariaLabel,
  inverse,
  tertiary,
  callout,
  calloutStyle,
  ...extraProps
}, ref) => {
  // Use a button if disabled, even if a href is provided to ensure expected behavior.
  const ButtonTag = href && !disabled ? 'a' : 'button';
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(ButtonTag, {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('mdc-button', className, {
      'mdc-button--raised': !text && !tertiary && !callout,
      'mdc-button--danger': danger,
      'mdc-button--inverse': inverse,
      'mdc-button--tertiary': tertiary,
      'mdc-button--callout': callout,
      'mdc-button--callout-primary': callout || calloutStyle === 'primary',
      'mdc-button--callout-warning': calloutStyle === 'warning',
      'mdc-button--callout-error': calloutStyle === 'error'
    }),
    href: disabled ? undefined : href,
    ref: ref,
    disabled: !!disabled,
    "aria-label": ariaLabel,
    target: target || '_self',
    role: 'a' === ButtonTag ? 'button' : undefined,
    ...extraProps,
    children: children
  });
});
SemanticButton.propTypes = {
  children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),
  href: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  text: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),
  className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  danger: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),
  disabled: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),
  target: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  'aria-label': (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  inverse: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),
  tertiary: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),
  callout: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),
  calloutStyle: prop_types__WEBPACK_IMPORTED_MODULE_3___default().oneOf(['primary', 'warning', 'error'])
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SemanticButton);

/***/ }),

/***/ "./js/googlesitekit/components-gm2/Button/index.js":
/*!*********************************************************!*\
  !*** ./js/googlesitekit/components-gm2/Button/index.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _react_hook_merged_ref__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @react-hook/merged-ref */ "../node_modules/@react-hook/merged-ref/dist/module/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_material_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/material-components */ "./js/material-components/index.js");
/* harmony import */ var _SemanticButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SemanticButton */ "./js/googlesitekit/components-gm2/Button/SemanticButton.js");
/* harmony import */ var _MaybeTooltip__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./MaybeTooltip */ "./js/googlesitekit/components-gm2/Button/MaybeTooltip.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Button component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */




const Button = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.forwardRef)(({
  children,
  href = null,
  text = false,
  className = '',
  danger = false,
  disabled = false,
  target,
  icon = null,
  trailingIcon = null,
  'aria-label': ariaLabel,
  title = null,
  customizedTooltip = null,
  tooltip = false,
  inverse = false,
  hideTooltipTitle = false,
  tooltipEnterDelayInMS = 100,
  tertiary = false,
  callout = false,
  calloutStyle = null,
  ...extraProps
}, ref) => {
  const buttonRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useCallback)(el => {
    if (el !== null) {
      _js_material_components__WEBPACK_IMPORTED_MODULE_1__.MDCRipple.attachTo(el);
    }
  }, []);
  const mergedRefs = (0,_react_hook_merged_ref__WEBPACK_IMPORTED_MODULE_6__["default"])(ref, buttonRef);
  function getAriaLabel() {
    let label = ariaLabel;
    if (target !== '_blank') {
      return label;
    }
    const newTabText = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__._x)('(opens in a new tab)', 'screen reader text', 'google-site-kit');
    if (typeof children === 'string') {
      label = label || children;
    }
    if (label) {
      return `${label} ${newTabText}`;
    }
    return newTabText;
  }
  const tooltipTitle = !hideTooltipTitle ? title || customizedTooltip || ariaLabel : null;
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_MaybeTooltip__WEBPACK_IMPORTED_MODULE_3__["default"], {
    disabled: disabled,
    tooltip: tooltip,
    tooltipTitle: tooltipTitle,
    hasIconOnly: !!icon && children === undefined,
    tooltipEnterDelayInMS: tooltipEnterDelayInMS,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(_SemanticButton__WEBPACK_IMPORTED_MODULE_2__["default"], {
      href: href,
      disabled: disabled,
      className: className,
      danger: danger,
      text: text,
      tertiary: tertiary,
      inverse: inverse,
      callout: callout,
      calloutStyle: calloutStyle,
      ref: mergedRefs,
      "aria-label": getAriaLabel(),
      target: target || '_self',
      ...extraProps,
      children: [icon, children && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("span", {
        className: "mdc-button__label",
        children: children
      }), trailingIcon]
    })
  });
});
Button.propTypes = {
  onClick: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().func),
  children: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().node),
  href: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string),
  text: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().bool),
  className: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string),
  danger: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().bool),
  disabled: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().bool),
  icon: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().element),
  trailingIcon: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().element),
  title: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string),
  customizedTooltip: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().element),
  tooltip: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().bool),
  inverse: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().bool),
  hideTooltipTitle: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().bool),
  callout: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().bool),
  calloutStyle: prop_types__WEBPACK_IMPORTED_MODULE_7___default().oneOf(['primary', 'warning', 'error'])
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Button);

/***/ }),

/***/ "./js/googlesitekit/components-gm2/CircularProgress.js":
/*!*************************************************************!*\
  !*** ./js/googlesitekit/components-gm2/CircularProgress.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ CircularProgress)
/* harmony export */ });
/* harmony import */ var _material_ui_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @material-ui/core */ "../node_modules/@material-ui/core/esm/CircularProgress/CircularProgress.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * CircularProgress component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


function CircularProgress(props) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_material_ui_core__WEBPACK_IMPORTED_MODULE_1__["default"], {
    ...props
  });
}

/***/ }),

/***/ "./js/googlesitekit/components-gm2/SpinnerButton.js":
/*!**********************************************************!*\
  !*** ./js/googlesitekit/components-gm2/SpinnerButton.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   SPINNER_POSITION: () => (/* binding */ SPINNER_POSITION),
/* harmony export */   "default": () => (/* binding */ SpinnerButton)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _Button__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Button */ "./js/googlesitekit/components-gm2/Button/index.js");
/* harmony import */ var _CircularProgress__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./CircularProgress */ "./js/googlesitekit/components-gm2/CircularProgress.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */




/**
 * Internal dependencies
 */



const SPINNER_POSITION = {
  BEFORE: 'before',
  AFTER: 'after'
};
function SpinnerButton(props) {
  const {
    className,
    onClick = () => {},
    isSaving = false,
    spinnerPosition = SPINNER_POSITION.AFTER,
    ...restProps
  } = props;
  const definedProps = (0,lodash__WEBPACK_IMPORTED_MODULE_1__.pickBy)(restProps, value => value !== undefined);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_Button__WEBPACK_IMPORTED_MODULE_2__["default"], {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()(className, 'googlesitekit-button-icon--spinner', {
      'googlesitekit-button-icon--spinner__running': isSaving,
      'googlesitekit-button-icon--spinner__before': spinnerPosition === SPINNER_POSITION.BEFORE,
      'googlesitekit-button-icon--spinner__after': spinnerPosition === SPINNER_POSITION.AFTER
    }),
    icon: isSaving && spinnerPosition === SPINNER_POSITION.BEFORE ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_CircularProgress__WEBPACK_IMPORTED_MODULE_3__["default"], {
      size: 14
    }) : undefined,
    trailingIcon: isSaving && spinnerPosition === SPINNER_POSITION.AFTER ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_CircularProgress__WEBPACK_IMPORTED_MODULE_3__["default"], {
      size: 14
    }) : undefined,
    onClick: onClick,
    ...definedProps
  });
}
SpinnerButton.propTypes = {
  className: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string),
  onClick: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().func),
  isSaving: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().bool),
  spinnerPosition: prop_types__WEBPACK_IMPORTED_MODULE_5___default().oneOf(Object.values(SPINNER_POSITION))
};

/***/ }),

/***/ "./js/googlesitekit/components-gm2/Tooltip.js":
/*!****************************************************!*\
  !*** ./js/googlesitekit/components-gm2/Tooltip.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Tooltip)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _material_ui_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @material-ui/core */ "../node_modules/@material-ui/core/esm/Tooltip/Tooltip.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Tooltip component.
 *
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */




/**
 * WordPress dependencies
 */


function Tooltip({
  children,
  popperClassName,
  tooltipClassName,
  onOpen,
  onClose,
  ...props
}) {
  const isOpen = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useRef)(false);
  const handleOpen = onOpen ? () => {
    // This fixes a bug where the `onOpen` callback is called when the tooltip is already open.
    if (isOpen.current) {
      return;
    }
    isOpen.current = true;
    onOpen?.();
  } : undefined;
  const handleClose = onOpen ? () => {
    isOpen.current = false;
    onClose?.();
  } : onClose;
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_material_ui_core__WEBPACK_IMPORTED_MODULE_3__["default"], {
    classes: {
      popper: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-tooltip-popper', popperClassName),
      tooltip: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-tooltip', tooltipClassName)
    },
    onOpen: handleOpen,
    onClose: handleClose,
    ...props,
    arrow: true,
    children: children
  });
}
Tooltip.propTypes = {
  children: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().node),
  popperClassName: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string),
  tooltipClassName: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string),
  onOpen: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func),
  onClose: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().func)
};

/***/ }),

/***/ "./js/googlesitekit/constants.js":
/*!***************************************!*\
  !*** ./js/googlesitekit/constants.js ***!
  \***************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   ANCHOR_ID_CONTENT: () => (/* binding */ ANCHOR_ID_CONTENT),
/* harmony export */   ANCHOR_ID_KEY_METRICS: () => (/* binding */ ANCHOR_ID_KEY_METRICS),
/* harmony export */   ANCHOR_ID_MONETIZATION: () => (/* binding */ ANCHOR_ID_MONETIZATION),
/* harmony export */   ANCHOR_ID_SPEED: () => (/* binding */ ANCHOR_ID_SPEED),
/* harmony export */   ANCHOR_ID_TRAFFIC: () => (/* binding */ ANCHOR_ID_TRAFFIC),
/* harmony export */   SITE_KIT_VIEW_CONTEXTS: () => (/* binding */ SITE_KIT_VIEW_CONTEXTS),
/* harmony export */   SITE_KIT_VIEW_ONLY_CONTEXTS: () => (/* binding */ SITE_KIT_VIEW_ONLY_CONTEXTS),
/* harmony export */   VIEW_CONTEXT_ACTIVATION: () => (/* binding */ VIEW_CONTEXT_ACTIVATION),
/* harmony export */   VIEW_CONTEXT_ADMIN_BAR: () => (/* binding */ VIEW_CONTEXT_ADMIN_BAR),
/* harmony export */   VIEW_CONTEXT_ADMIN_BAR_VIEW_ONLY: () => (/* binding */ VIEW_CONTEXT_ADMIN_BAR_VIEW_ONLY),
/* harmony export */   VIEW_CONTEXT_AD_BLOCKING_RECOVERY: () => (/* binding */ VIEW_CONTEXT_AD_BLOCKING_RECOVERY),
/* harmony export */   VIEW_CONTEXT_ENTITY_DASHBOARD: () => (/* binding */ VIEW_CONTEXT_ENTITY_DASHBOARD),
/* harmony export */   VIEW_CONTEXT_ENTITY_DASHBOARD_VIEW_ONLY: () => (/* binding */ VIEW_CONTEXT_ENTITY_DASHBOARD_VIEW_ONLY),
/* harmony export */   VIEW_CONTEXT_KEY_METRICS_SETUP: () => (/* binding */ VIEW_CONTEXT_KEY_METRICS_SETUP),
/* harmony export */   VIEW_CONTEXT_MAIN_DASHBOARD: () => (/* binding */ VIEW_CONTEXT_MAIN_DASHBOARD),
/* harmony export */   VIEW_CONTEXT_MAIN_DASHBOARD_VIEW_ONLY: () => (/* binding */ VIEW_CONTEXT_MAIN_DASHBOARD_VIEW_ONLY),
/* harmony export */   VIEW_CONTEXT_METRIC_SELECTION: () => (/* binding */ VIEW_CONTEXT_METRIC_SELECTION),
/* harmony export */   VIEW_CONTEXT_MODULE: () => (/* binding */ VIEW_CONTEXT_MODULE),
/* harmony export */   VIEW_CONTEXT_MODULE_SETUP: () => (/* binding */ VIEW_CONTEXT_MODULE_SETUP),
/* harmony export */   VIEW_CONTEXT_POSTS_LIST: () => (/* binding */ VIEW_CONTEXT_POSTS_LIST),
/* harmony export */   VIEW_CONTEXT_SETTINGS: () => (/* binding */ VIEW_CONTEXT_SETTINGS),
/* harmony export */   VIEW_CONTEXT_SPLASH: () => (/* binding */ VIEW_CONTEXT_SPLASH),
/* harmony export */   VIEW_CONTEXT_USER_INPUT: () => (/* binding */ VIEW_CONTEXT_USER_INPUT),
/* harmony export */   VIEW_CONTEXT_WP_BLOCK_EDITOR: () => (/* binding */ VIEW_CONTEXT_WP_BLOCK_EDITOR),
/* harmony export */   VIEW_CONTEXT_WP_DASHBOARD: () => (/* binding */ VIEW_CONTEXT_WP_DASHBOARD),
/* harmony export */   VIEW_CONTEXT_WP_DASHBOARD_VIEW_ONLY: () => (/* binding */ VIEW_CONTEXT_WP_DASHBOARD_VIEW_ONLY)
/* harmony export */ });
/**
 * Core constants.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const VIEW_CONTEXT_MAIN_DASHBOARD = 'mainDashboard';
const VIEW_CONTEXT_ENTITY_DASHBOARD = 'entityDashboard';
const VIEW_CONTEXT_MAIN_DASHBOARD_VIEW_ONLY = 'mainDashboardViewOnly';
const VIEW_CONTEXT_ENTITY_DASHBOARD_VIEW_ONLY = 'entityDashboardViewOnly';
const VIEW_CONTEXT_POSTS_LIST = 'postsList';
const VIEW_CONTEXT_USER_INPUT = 'userInput';
const VIEW_CONTEXT_ACTIVATION = 'activation';
const VIEW_CONTEXT_SPLASH = 'splash';
const VIEW_CONTEXT_ADMIN_BAR = 'adminBar';
const VIEW_CONTEXT_ADMIN_BAR_VIEW_ONLY = 'adminBarViewOnly';
const VIEW_CONTEXT_SETTINGS = 'settings';
const VIEW_CONTEXT_AD_BLOCKING_RECOVERY = 'adBlockingRecovery';
const VIEW_CONTEXT_MODULE = 'module';
const VIEW_CONTEXT_WP_DASHBOARD = 'wpDashboard';
const VIEW_CONTEXT_WP_DASHBOARD_VIEW_ONLY = 'wpDashboardViewOnly';
const VIEW_CONTEXT_MODULE_SETUP = 'moduleSetup';
const VIEW_CONTEXT_METRIC_SELECTION = 'metricSelection';
const VIEW_CONTEXT_WP_BLOCK_EDITOR = 'wpBlockEditor';
const VIEW_CONTEXT_KEY_METRICS_SETUP = 'keyMetricsSetup';

// Anchor ID Constants
const ANCHOR_ID_KEY_METRICS = 'key-metrics';
const ANCHOR_ID_TRAFFIC = 'traffic';
const ANCHOR_ID_CONTENT = 'content';
const ANCHOR_ID_SPEED = 'speed';
const ANCHOR_ID_MONETIZATION = 'monetization';

// Site Kit only view contexts
const SITE_KIT_VIEW_CONTEXTS = [VIEW_CONTEXT_MAIN_DASHBOARD, VIEW_CONTEXT_ENTITY_DASHBOARD, VIEW_CONTEXT_MAIN_DASHBOARD_VIEW_ONLY, VIEW_CONTEXT_ENTITY_DASHBOARD_VIEW_ONLY, VIEW_CONTEXT_USER_INPUT, VIEW_CONTEXT_SPLASH, VIEW_CONTEXT_SETTINGS, VIEW_CONTEXT_MODULE_SETUP, VIEW_CONTEXT_METRIC_SELECTION];

// Site Kit view-only contexts
const SITE_KIT_VIEW_ONLY_CONTEXTS = [VIEW_CONTEXT_MAIN_DASHBOARD_VIEW_ONLY, VIEW_CONTEXT_ENTITY_DASHBOARD_VIEW_ONLY, VIEW_CONTEXT_ADMIN_BAR_VIEW_ONLY, VIEW_CONTEXT_WP_DASHBOARD_VIEW_ONLY];

/***/ }),

/***/ "./js/googlesitekit/data-requirements/index.js":
/*!*****************************************************!*\
  !*** ./js/googlesitekit/data-requirements/index.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   requireAudienceSegmentationWidgetHidden: () => (/* binding */ requireAudienceSegmentationWidgetHidden),
/* harmony export */   requireCanActivateModule: () => (/* binding */ requireCanActivateModule),
/* harmony export */   requireCanViewSharedModule: () => (/* binding */ requireCanViewSharedModule),
/* harmony export */   requireIsAuthenticated: () => (/* binding */ requireIsAuthenticated),
/* harmony export */   requireItemDismissed: () => (/* binding */ requireItemDismissed),
/* harmony export */   requireModuleAccess: () => (/* binding */ requireModuleAccess),
/* harmony export */   requireModuleActive: () => (/* binding */ requireModuleActive),
/* harmony export */   requireModuleConnected: () => (/* binding */ requireModuleConnected),
/* harmony export */   requireModuleGatheringData: () => (/* binding */ requireModuleGatheringData),
/* harmony export */   requireModuleOwnership: () => (/* binding */ requireModuleOwnership),
/* harmony export */   requireScope: () => (/* binding */ requireScope)
/* harmony export */ });
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/**
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */




/**
 * Returns a function that checks if the current user has the given scope.
 *
 * @since 1.166.0
 *
 * @param {string} scope Scope to check.
 * @return {function(WPDataRegistry): Promise<boolean>} Whether the current user has the given scope.
 */
function requireScope(scope) {
  return async ({
    select,
    resolveSelect
  }) => {
    await resolveSelect(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).getAuthentication();
    return select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).hasScope(scope);
  };
}

/**
 * Returns a function that checks if the current user is authenticated.
 *
 * @since 1.166.0
 *
 * @return {function(WPDataRegistry): Promise<boolean>} Whether or not the current user is authenticated.
 */
function requireIsAuthenticated() {
  return async ({
    select,
    resolveSelect
  }) => {
    await resolveSelect(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).getAuthentication();
    return true === select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).isAuthenticated();
  };
}

/**
 * Returns a function that checks if the current user can view the given shared module.
 *
 * @since 1.166.0
 *
 * @param {string} slug Module slug to test.
 * @return {function(WPDataRegistry): Promise<boolean>} Whether the current user can view the given shared module.
 */
function requireCanViewSharedModule(slug) {
  return async ({
    select,
    resolveSelect
  }) => {
    await resolveSelect(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).getCapabilities();
    return select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).canViewSharedModule(slug);
  };
}

/**
 * Returns a function that checks if the given module is active.
 *
 * @since n.e.x.t
 *
 * @param {string} slug Module slug to test.
 * @return {function(WPDataRegistry): Promise<boolean>} Whether the given module is active or not.
 */
function requireModuleActive(slug) {
  return async function ({
    resolveSelect
  }) {
    return true === (await resolveSelect(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_MODULES).isModuleActive(slug));
  };
}

/**
 * Returns a function that checks if the given module is connected.
 *
 * @since 1.166.0
 *
 * @param {string} slug Module slug to test.
 * @return {function(WPDataRegistry): Promise<boolean>} Whether the given module is connected or not.
 */
function requireModuleConnected(slug) {
  return async function ({
    resolveSelect
  }) {
    return true === (await resolveSelect(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_MODULES).isModuleConnected(slug));
  };
}

/**
 * Returns a function that checks if the current user is the owner of the given module.
 *
 * @since 1.166.0
 *
 * @param {string} slug Module slug to test.
 * @return {function(WPDataRegistry): Promise<boolean>} Whether the given module is owned by the current user or not.
 */
function requireModuleOwnership(slug) {
  return async ({
    resolveSelect
  }) => true === (await resolveSelect(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_MODULES).hasModuleOwnership(slug));
}

/**
 * Returns a function that checks if the current user has access to the given module.
 *
 * @since 1.166.0
 *
 * @param {string} slug Module slug to test.
 * @return {function(WPDataRegistry): Promise<boolean>} Whether the current user has access to the given module or not.
 */
function requireModuleAccess(slug) {
  return async ({
    resolveSelect
  }) => true === (await resolveSelect(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_MODULES).hasModuleAccess(slug));
}

/**
 * Returns a function that checks if the given item is dismissed.
 *
 * @since 1.166.0
 *
 * @param {string} item Dismissible item ID.
 * @return {function(WPDataRegistry): Promise<boolean>} Whether the given item is dismissed or not.
 */
function requireItemDismissed(item) {
  return async ({
    resolveSelect
  }) => true === (await resolveSelect(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).isItemDismissed(item));
}

/**
 * Returns a function that checks if the audience segmentation widget is hidden.
 *
 * @since 1.166.0
 *
 * @return {function(WPDataRegistry): Promise<boolean>} Whether the widget is hidden or not.
 */
function requireAudienceSegmentationWidgetHidden() {
  return async ({
    select,
    resolveSelect
  }) => {
    await resolveSelect(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).getUserAudienceSettings();
    return true === select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).isAudienceSegmentationWidgetHidden();
  };
}

/**
 * Returns a function that checks if the given module'sdatastore is gathering data.
 *
 * @since n.e.x.t
 *
 * @param {string} datastoreSlug Datastore slug to test.
 * @return {function(WPDataRegistry): Promise<boolean>} Whether the given datastore is gathering data or not.
 */
function requireModuleGatheringData(datastoreSlug) {
  return async ({
    resolveSelect
  }) => true === (await resolveSelect(datastoreSlug).isGatheringData());
}

/**
 * Returns a function that checks if the current user can activate the given module.
 *
 * @since n.e.x.t
 *
 * @param {string} slug Module slug to test.
 * @return {function(WPDataRegistry): Promise<boolean>} Whether the current user can activate the given module or not.
 */
function requireCanActivateModule(slug) {
  return async ({
    resolveSelect
  }) => true === (await resolveSelect(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_MODULES).canActivateModule(slug));
}

/***/ }),

/***/ "./js/googlesitekit/data/create-error-store.js":
/*!*****************************************************!*\
  !*** ./js/googlesitekit/data/create-error-store.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   actions: () => (/* binding */ actions),
/* harmony export */   createErrorStore: () => (/* binding */ createErrorStore),
/* harmony export */   generateErrorKey: () => (/* binding */ generateErrorKey)
/* harmony export */ });
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/data */ "../node_modules/@wordpress/data/build-module/factory.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var md5__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! md5 */ "../node_modules/md5/md5.js");
/* harmony import */ var md5__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(md5__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__);
/**
 * API function to create fetch store.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * External dependencies
 */


const RECEIVE_ERROR = 'RECEIVE_ERROR';
const CLEAR_ERROR = 'CLEAR_ERROR';
const CLEAR_ERRORS = 'CLEAR_ERRORS';

/**
 * Internal dependencies
 */


function generateErrorKey(baseName, args) {
  if (args && Array.isArray(args)) {
    const stringifiedArgs = args.map(item => {
      return 'object' === typeof item ? (0,_js_util__WEBPACK_IMPORTED_MODULE_2__.stringifyObject)(item) : item;
    });
    return `${baseName}::${md5__WEBPACK_IMPORTED_MODULE_1___default()(JSON.stringify(stringifiedArgs))}`;
  }
  return baseName;
}
const actions = {
  receiveError(error, baseName, args = []) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(error, 'error is required.');
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(baseName, 'baseName is required.');
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(args && Array.isArray(args), 'args must be an array.');
    return {
      type: RECEIVE_ERROR,
      payload: {
        error,
        baseName,
        args
      }
    };
  },
  clearError(baseName, args = []) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(baseName, 'baseName is required.');
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(args && Array.isArray(args), 'args must be an array.');
    return {
      type: CLEAR_ERROR,
      payload: {
        baseName,
        args
      }
    };
  },
  clearErrors(baseName) {
    return {
      type: CLEAR_ERRORS,
      payload: {
        baseName
      }
    };
  }
};
function createErrorStore(storeName) {
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(storeName, 'storeName must be defined.');
  const initialState = {
    errors: {},
    errorArgs: {}
  };
  const reducer = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, {
    type,
    payload
  }) => {
    switch (type) {
      case RECEIVE_ERROR:
        {
          const {
            baseName,
            args,
            error
          } = payload;
          const key = generateErrorKey(baseName, args);
          state.errors = state.errors || {};
          state.errorArgs = state.errorArgs || {};
          state.errors[key] = error;
          state.errorArgs[key] = args;
          break;
        }
      case CLEAR_ERROR:
        {
          const {
            baseName,
            args
          } = payload;
          const key = generateErrorKey(baseName, args);
          state.errors = state.errors || {};
          state.errorArgs = state.errorArgs || {};
          delete state.errors[key];
          delete state.errorArgs[key];
          break;
        }
      case CLEAR_ERRORS:
        {
          const {
            baseName
          } = payload;
          if (baseName) {
            state.errors = state.errors || {};
            state.errorArgs = state.errorArgs || {};
            for (const key in state.errors) {
              if (key === baseName || key.startsWith(`${baseName}::`)) {
                delete state.errors[key];
                delete state.errorArgs[key];
              }
            }
          } else {
            state.errors = {};
            state.errorArgs = {};
          }
          break;
        }
    }
  });
  const controls = {};
  const resolvers = {};
  const selectors = {
    /**
     * Retrieves the error object from state.
     *
     * Error object has the format:
     *
     * ```
     * {
     *   code: <String>,
     *   message: <String>,
     *   data: <Object>
     * }
     * ```
     *
     * @since 1.15.0
     *
     * @param {Object}      state        Data store's state.
     * @param {string}      selectorName Selector name.
     * @param {Array.<any>} [args]       Arguments passed to selector (default `[]`).
     * @return {(Object|undefined)} Error object if exists, otherwise undefined.
     */
    getErrorForSelector(state, selectorName, args = []) {
      invariant__WEBPACK_IMPORTED_MODULE_0___default()(selectorName, 'selectorName is required.');
      return selectors.getError(state, selectorName, args);
    },
    /**
     * Retrieves the error object from state.
     *
     *```
     * {
     *   code: <String>,
     *   message: <String>,
     *   data: <Object>
     * }
     * ```
     *
     * @since 1.15.0
     *
     * @param {Object}      state      Data store's state.
     * @param {string}      actionName Action name.
     * @param {Array.<any>} [args]     Arguments passed to action (default `[]`).
     * @return {(Object|undefined)} Error object if exists, otherwise undefined.
     */
    getErrorForAction(state, actionName, args = []) {
      invariant__WEBPACK_IMPORTED_MODULE_0___default()(actionName, 'actionName is required.');
      return selectors.getError(state, actionName, args);
    },
    /**
     * Retrieves the error object from state.
     *
     *```
     * {
     *   code: <String>,
     *   message: <String>,
     *   data: <Object>
     * }
     * ```
     *
     * @since 1.15.0
     * @private
     *
     * @param {Object}      state      Data store's state.
     * @param {string}      [baseName] Selector or action name.
     * @param {Array.<any>} [args]     Arguments array.
     * @return {(Object|undefined)} Error object if exists, otherwise undefined.
     */
    getError(state, baseName, args) {
      const {
        errors
      } = state;
      invariant__WEBPACK_IMPORTED_MODULE_0___default()(baseName, 'baseName is required.');
      return errors[generateErrorKey(baseName, args)];
    },
    /**
     * Gets a list of all unique errors.
     *
     * @since 1.19.0
     *
     * @param {Object} state Data store's state.
     * @return {Object[]} Unique set of errors.
     */
    getErrors(state) {
      const errorsSet = new Set(Object.values(state.errors));
      return Array.from(errorsSet);
    },
    /**
     * Gets the meta-data for a given error object, or null if the error is not found.
     *
     * Returns meta-data in the format:
     *
     * ```
     *	{
     *		baseName: <string>,
     *		args: <Array>
     *	}
     * ```
     *
     * @since 1.84.0
     *
     * @param {Object} state Data store's state.
     * @param {Object} error Error object.
     * @return {Object|null} Meta-data for the given error object, or null if the error is not found.
     */
    getMetaDataForError(state, error) {
      const key = Object.keys(state.errors).find(errorKey => state.errors[errorKey] === error);
      if (key) {
        const baseName = key.substring(0, key.indexOf('::'));
        return {
          baseName,
          args: state.errorArgs[key]
        };
      }
      return null;
    },
    /**
     * Gets the selector data for a given error object, or null if no selector data is available.
     *
     * Returns selector data in the format:
     *
     * ```
     *	{
     *		storeName: <string>,
     *		name: <string>,
     *		args: <Array>
     *	}
     * ```
     *
     * @since 1.87.0
     *
     * @param {Object} state Data store's state.
     * @param {Object} error Error object.
     * @return {Object|null} Selector data for the given error object, or null if no selector data is available.
     */
    getSelectorDataForError: (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_4__.createRegistrySelector)(select => function (state, error) {
      const metaData = select(storeName).getMetaDataForError(error);
      if (metaData) {
        const {
          baseName: name,
          args
        } = metaData;
        const isSelector = !!select(storeName)[name];
        if (isSelector) {
          return {
            storeName,
            name,
            args
          };
        }
      }
      return null;
    }),
    /**
     * Determines whether the datastore has errors or not.
     *
     * @since 1.15.0
     *
     * @param {Object} state Data store's state.
     * @return {boolean} TRUE if the datastore has errors, otherwise FALSE.
     */
    hasErrors(state) {
      return selectors.getErrors(state).length > 0;
    }
  };
  return {
    initialState,
    actions,
    controls,
    reducer,
    resolvers,
    selectors
  };
}

/***/ }),

/***/ "./js/googlesitekit/data/create-existing-tag-store.js":
/*!************************************************************!*\
  !*** ./js/googlesitekit/data/create-existing-tag-store.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   createExistingTagStore: () => (/* binding */ createExistingTagStore)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_util_tag__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/util/tag */ "./js/util/tag.js");
/**
 * Provides a datastore for getting existing tags
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */




// Actions
const FETCH_GET_EXISTING_TAG = 'FETCH_GET_EXISTING_TAG';
const RECEIVE_GET_EXISTING_TAG = 'RECEIVE_GET_EXISTING_TAG';

/**
 * Creates a store object that includes actions and selectors for getting existing tags.
 *
 * @since 1.13.0
 * @private
 *
 * @param {Object}   args             Arguments for the store generation.
 * @param {string}   args.storeName   Store name to use.
 * @param {Array}    args.tagMatchers The tag matchers used to extract tags from HTML.
 * @param {Function} args.isValidTag  Function to test whether a tag is valid or not.
 * @return {Object} The existing tag store object, with additional `STORE_NAME` and
 * initialState` properties.
 */
function createExistingTagStore({
  storeName: STORE_NAME,
  isValidTag,
  tagMatchers
} = {}) {
  invariant__WEBPACK_IMPORTED_MODULE_0___default()('string' === typeof STORE_NAME && STORE_NAME, 'storeName is required.');
  invariant__WEBPACK_IMPORTED_MODULE_0___default()('function' === typeof isValidTag, 'isValidTag must be a function.');
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(Array.isArray(tagMatchers), 'tagMatchers must be an Array.');
  const initialState = {
    existingTag: undefined
  };
  const actions = {
    fetchGetExistingTag() {
      return {
        payload: {},
        type: FETCH_GET_EXISTING_TAG
      };
    },
    receiveGetExistingTag(existingTag) {
      invariant__WEBPACK_IMPORTED_MODULE_0___default()(existingTag === null || 'string' === typeof existingTag, 'existingTag must be a tag string or null.');
      return {
        payload: {
          existingTag: isValidTag(existingTag) ? existingTag : null
        },
        type: RECEIVE_GET_EXISTING_TAG
      };
    }
  };
  const controls = {
    [FETCH_GET_EXISTING_TAG]: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.createRegistryControl)(registry => async () => {
      const homeURL = registry.select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_SITE).getHomeURL();
      const ampMode = registry.select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_SITE).getAMPMode();
      const existingTagURLs = await (0,_js_util_tag__WEBPACK_IMPORTED_MODULE_3__.getExistingTagURLs)({
        homeURL,
        ampMode
      });
      const {
        getHTMLForURL
      } = registry.resolveSelect(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_SITE);
      for (const url of existingTagURLs) {
        const html = await getHTMLForURL(url);
        const tagFound = (0,_js_util_tag__WEBPACK_IMPORTED_MODULE_3__.extractExistingTag)(html, tagMatchers);
        if (tagFound) {
          return tagFound;
        }
      }
      return null;
    })
  };
  const reducer = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.createReducer)((state, {
    type,
    payload
  }) => {
    switch (type) {
      case RECEIVE_GET_EXISTING_TAG:
        {
          const {
            existingTag
          } = payload;
          state.existingTag = existingTag;
          break;
        }
    }
  });
  const resolvers = {
    *getExistingTag() {
      const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.commonActions.getRegistry();
      if (registry.select(STORE_NAME).getExistingTag() === undefined) {
        const existingTag = yield actions.fetchGetExistingTag();
        registry.dispatch(STORE_NAME).receiveGetExistingTag(existingTag);
      }
    }
  };
  const selectors = {
    /**
     * Gets the existing tag, if any.
     *
     * @since 1.13.0
     *
     * @param {Object} state Data store's state.
     * @return {(string|null|undefined)} The existing tag `string` if present, `null` if not present, or `undefined` if not loaded yet.
     */
    getExistingTag(state) {
      return state.existingTag;
    },
    /**
     * Checks whether or not an existing tag is present.
     *
     * @since 1.13.0
     *
     * @return {(boolean|undefined)} Boolean if tag is present, `undefined` if tag presence has not been resolved yet.
     */
    hasExistingTag: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.createRegistrySelector)(select => () => {
      const existingTag = select(STORE_NAME).getExistingTag();
      if (existingTag === undefined) {
        return undefined;
      }
      return !!existingTag;
    })
  };
  const store = {
    initialState,
    actions,
    controls,
    reducer,
    resolvers,
    selectors
  };
  return {
    ...store,
    STORE_NAME
  };
}

/***/ }),

/***/ "./js/googlesitekit/data/create-fetch-store.js":
/*!*****************************************************!*\
  !*** ./js/googlesitekit/data/create-fetch-store.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   createFetchStore: () => (/* binding */ createFetchStore)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _create_error_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./create-error-store */ "./js/googlesitekit/data/create-error-store.js");
/* harmony import */ var _transform_case__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./transform-case */ "./js/googlesitekit/data/transform-case.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_5__);
/**
 * API function to create fetch store.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Internal dependencies
 */




function defaultReducerCallback(state) {
  return state;
}
function defaultArgsToParams() {
  return {};
}
function defaultValidateParams() {}

// Get access to error store action creators.
// If the parent store doesn't include the error store,
// yielded error actions will be a no-op.
const {
  clearError,
  receiveError
} = _create_error_store__WEBPACK_IMPORTED_MODULE_2__.actions;

/**
 * Creates a store object implementing the necessary infrastructure for a
 * single fetch action.
 *
 * This function returns a partial store object with the following:
 * - action creators to fetch and to receive the data
 * - control to issue the API request
 * - reducer to set API request flag and receive the response
 * - selector to check whether the API request is in progress via a flag
 *
 * The names of the pieces are based on the baseName provided.
 * For example, if baseName is 'saveSettings':
 * - The fetch action creator is called 'fetchSaveSettings'.
 * - The receive action creator is called 'receiveSaveSettings'.
 * - The fetching selector is called 'isFetchingSaveSettings'.
 *
 * All parts of the returned store objects should be considered internal. A
 * public action or selector should be implemented to actually call the
 * fetch action included in the returned store object.
 *
 * For example, if the fetch store is intended for an API-based
 * action 'storeMySetting':
 * - The basename passed should be 'storeMySetting'.
 * - The action 'storeMySetting' should call 'fetchStoreMySetting'.
 *
 * Or, if the fetch store is intended for an API-based selector
 * 'getSomeData':
 * - The baseName passed should be 'getSomeData'.
 * - The resolver for 'getSomeData' should call 'fetchGetSomeData'.
 *
 * @since 1.10.0
 * @private
 *
 * @param {Object}   args                   Arguments for creating the fetch store.
 * @param {string}   args.baseName          The base name to use for all the created infrastructure.
 * @param {Function} args.controlCallback   Callback function to issue the API request. Will be used inside the
 *                                          control. The function receives a params object based on argsToParams,
 *                                          i.e. the respective values passed to the action.
 * @param {Function} [args.reducerCallback] Optional. Callback function to modify state based on the API response.
 *                                          Will be used inside the reducer. The function receives the store's state
 *                                          object as first parameter, the API response as second parameter, and the
 *                                          params object for the request (see above) as third parameter. If not
 *                                          provided, the default will return the unmodified state.
 * @param {Function} [args.argsToParams]    Optional. Function that reduces the given list of arguments
 *                                          into a object of key/value parameters, with the argument names used as keys.
 *                                          If not provided, the default function will return an empty object,
 *                                          essentially indicating that no arguments are supported/required.
 * @param {Function} [args.validateParams]  Optional. Function that validates the given parameters object created by `argsToParams`.
 *                                          Any invalid parameters should cause a respective error to be thrown.
 * @return {Object} Partial store object with properties 'actions', 'controls', 'reducer', 'resolvers', and 'selectors'.
 */
function createFetchStore({
  baseName,
  controlCallback,
  reducerCallback = defaultReducerCallback,
  argsToParams = defaultArgsToParams,
  validateParams = defaultValidateParams
}) {
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(baseName, 'baseName is required.');
  invariant__WEBPACK_IMPORTED_MODULE_0___default()('function' === typeof controlCallback, 'controlCallback is required and must be a function.');
  invariant__WEBPACK_IMPORTED_MODULE_0___default()('function' === typeof reducerCallback, 'reducerCallback must be a function.');
  invariant__WEBPACK_IMPORTED_MODULE_0___default()('function' === typeof argsToParams, 'argsToParams must be a function.');
  invariant__WEBPACK_IMPORTED_MODULE_0___default()('function' === typeof validateParams, 'validateParams must be a function.');

  // If validating the result of argsToParams without any arguments does not result in an error, we
  // know params is okay to be empty.
  let requiresParams;
  try {
    validateParams(argsToParams());
    requiresParams = false;
  } catch (error) {
    requiresParams = true;
  }
  const pascalCaseBaseName = (0,_transform_case__WEBPACK_IMPORTED_MODULE_3__.camelCaseToPascalCase)(baseName);
  const constantBaseName = (0,_transform_case__WEBPACK_IMPORTED_MODULE_3__.camelCaseToConstantCase)(baseName);
  const FETCH = `FETCH_${constantBaseName}`;
  const START_FETCH = `START_${FETCH}`;
  const FINISH_FETCH = `FINISH_${FETCH}`;
  const CATCH_FETCH = `CATCH_${FETCH}`;
  const RECEIVE = `RECEIVE_${constantBaseName}`;
  const fetchCreator = `fetch${pascalCaseBaseName}`;
  const receiveCreator = `receive${pascalCaseBaseName}`;
  const isFetching = `isFetching${pascalCaseBaseName}`;
  const initialState = {
    [isFetching]: {}
  };
  function* fetchGenerator(params, args) {
    let response;
    let error;
    yield {
      payload: {
        params
      },
      type: START_FETCH
    };
    yield clearError(baseName, args);
    try {
      response = yield {
        payload: {
          params
        },
        type: FETCH
      };
      yield actions[receiveCreator](response, params);
      yield {
        payload: {
          params
        },
        type: FINISH_FETCH
      };
    } catch (e) {
      error = e;
      yield receiveError(error, baseName, args);
      yield {
        payload: {
          params
        },
        type: CATCH_FETCH
      };
    }
    return {
      response,
      error
    };
  }
  const actions = {
    [fetchCreator](...args) {
      const params = argsToParams(...args);
      // In order for params validation to throw an error as expected,
      // this function cannot be a generator.
      validateParams(params);

      // The normal fetch action generator is invoked as the return here
      // to preserve asynchronous behavior without registering another action creator.
      return fetchGenerator(params, args);
    },
    [receiveCreator](response, params) {
      invariant__WEBPACK_IMPORTED_MODULE_0___default()(response !== undefined, 'response is required.');
      if (requiresParams) {
        invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,lodash__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(params), 'params is required.');
        validateParams(params);
      } else {
        params = {};
      }
      return {
        payload: {
          response,
          params
        },
        type: RECEIVE
      };
    }
  };
  const controls = {
    [FETCH]: ({
      payload
    }) => {
      return controlCallback(payload.params);
    }
  };
  const reducer = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_5__.createReducer)((state, {
    type,
    payload
  }) => {
    switch (type) {
      case START_FETCH:
        {
          const {
            params
          } = payload;
          state[isFetching] = state[isFetching] || {};
          state[isFetching][(0,_js_util__WEBPACK_IMPORTED_MODULE_4__.stringifyObject)(params)] = true;
          return state;
        }
      case RECEIVE:
        {
          const {
            response,
            params
          } = payload;
          return reducerCallback(state, response, params);
        }
      case FINISH_FETCH:
        {
          const {
            params
          } = payload;
          state[isFetching] = state[isFetching] || {};
          state[isFetching][(0,_js_util__WEBPACK_IMPORTED_MODULE_4__.stringifyObject)(params)] = false;
          return state;
        }
      case CATCH_FETCH:
        {
          const {
            params
          } = payload;
          state[isFetching] = state[isFetching] || {};
          state[isFetching][(0,_js_util__WEBPACK_IMPORTED_MODULE_4__.stringifyObject)(params)] = false;
          return state;
        }
      default:
        return state;
    }
  });
  const selectors = {
    [isFetching]: (state, ...args) => {
      if (state[isFetching] === undefined) {
        return false;
      }
      let params;
      try {
        params = argsToParams(...args);
        validateParams(params);
      } catch (err) {
        // If parameters are invalid, fail silently here. It likely is
        // because some dependency selector is still resolving.
        return false;
      }
      return !!state[isFetching][(0,_js_util__WEBPACK_IMPORTED_MODULE_4__.stringifyObject)(params)];
    }
  };
  return {
    initialState,
    actions,
    controls,
    reducer,
    resolvers: {},
    selectors
  };
}

/***/ }),

/***/ "./js/googlesitekit/data/create-reducer.js":
/*!*************************************************!*\
  !*** ./js/googlesitekit/data/create-reducer.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   createReducer: () => (/* binding */ createReducer)
/* harmony export */ });
/* harmony import */ var immer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! immer */ "../node_modules/immer/dist/immer.esm.mjs");
/**
 * Create Immer reducer utility function.
 *
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Creates an Immer-enabled reducer.
 *
 * @since 1.84.0
 *
 * @param {Function} reducerFunction A reducer function that follows the curried Immer recipe pattern.
 * @return {Function} An Immer-enabled reducer.
 */
function createReducer(reducerFunction) {
  return (0,immer__WEBPACK_IMPORTED_MODULE_0__["default"])(reducerFunction);
}

/***/ }),

/***/ "./js/googlesitekit/data/create-settings-store.js":
/*!********************************************************!*\
  !*** ./js/googlesitekit/data/create-settings-store.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   INVARIANT_DOING_SUBMIT_CHANGES: () => (/* binding */ INVARIANT_DOING_SUBMIT_CHANGES),
/* harmony export */   INVARIANT_SETTINGS_NOT_CHANGED: () => (/* binding */ INVARIANT_SETTINGS_NOT_CHANGED),
/* harmony export */   createSettingsStore: () => (/* binding */ createSettingsStore),
/* harmony export */   makeDefaultCanSubmitChanges: () => (/* binding */ makeDefaultCanSubmitChanges),
/* harmony export */   makeDefaultHaveSettingsChanged: () => (/* binding */ makeDefaultHaveSettingsChanged),
/* harmony export */   makeDefaultRollbackChanges: () => (/* binding */ makeDefaultRollbackChanges),
/* harmony export */   makeDefaultSubmitChanges: () => (/* binding */ makeDefaultSubmitChanges)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-api */ "googlesitekit-api");
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils */ "./js/googlesitekit/data/utils.js");
/* harmony import */ var _transform_case__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./transform-case */ "./js/googlesitekit/data/transform-case.js");
/* harmony import */ var _create_fetch_store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./create-fetch-store */ "./js/googlesitekit/data/create-fetch-store.js");
/* harmony import */ var _js_googlesitekit_data_create_error_store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/googlesitekit/data/create-error-store */ "./js/googlesitekit/data/create-error-store.js");
/**
 * Provides API functions to create a datastore for settings.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Internal dependencies
 */







// Get access to error store action creators.
// If the parent store doesn't include the error store,
// yielded error actions will be a no-op.
const {
  clearError,
  receiveError
} = _js_googlesitekit_data_create_error_store__WEBPACK_IMPORTED_MODULE_7__.actions;

// Invariant error messages.
const INVARIANT_DOING_SUBMIT_CHANGES = 'cannot submit changes while submitting changes';
const INVARIANT_SETTINGS_NOT_CHANGED = 'cannot submit changes if settings have not changed';

// Actions
const SET_SETTINGS = 'SET_SETTINGS';
const ROLLBACK_SETTINGS = 'ROLLBACK_SETTINGS';
const ROLLBACK_SETTING = 'ROLLBACK_SETTING';

/**
 * Creates a store object that includes actions and selectors for managing settings.
 *
 * The first three parameters hook up the store to the respective REST API endpoint,
 * while the fourth defines the names of the sub-settings to support.
 *
 * @since 1.6.0
 * @since 1.129.0 Added haveSettingsChanged optional paramter.
 * @private
 *
 * @param {string}        type                                  The data to access. One of 'core' or 'modules'.
 * @param {string}        identifier                            The data identifier, eg. a module slug like `search-console`.
 * @param {string}        datapoint                             The endpoint to request data from, e.g. 'settings'.
 * @param {Object}        options                               Optional. Options to consider for the store.
 * @param {Array}         [options.ownedSettingsSlugs]          Optional. List of "owned settings" for this module, if they exist.
 * @param {number}        [options.storeName]                   Store name to use. Default is '{type}/{identifier}'.
 * @param {Array}         [options.settingSlugs]                List of the slugs that are part of the settings object handled by the respective API endpoint.
 * @param {Object}        [options.initialSettings]             Optional. An initial set of settings as key-value pairs.
 * @param {Function|null} [options.validateHaveSettingsChanged] Optional. Custom callback to determine if settings have changed.
 * @return {Object} The settings store object, with additional `STORE_NAME` and
 *                  `initialState` properties.
 */
function createSettingsStore(type, identifier, datapoint, {
  ownedSettingsSlugs = undefined,
  storeName = undefined,
  settingSlugs = [],
  initialSettings = undefined,
  validateHaveSettingsChanged = makeDefaultHaveSettingsChanged()
} = {}) {
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(type, 'type is required.');
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(identifier, 'identifier is required.');
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(datapoint, 'datapoint is required.');
  const STORE_NAME = storeName || `${type}/${identifier}`;
  const initialState = {
    ownedSettingsSlugs,
    settings: initialSettings,
    savedSettings: undefined
  };
  const fetchGetSettingsStore = (0,_create_fetch_store__WEBPACK_IMPORTED_MODULE_6__.createFetchStore)({
    baseName: 'getSettings',
    controlCallback: () => {
      return (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__.get)(type, identifier, datapoint, {}, {
        useCache: false
      });
    },
    reducerCallback: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, values) => {
      state.savedSettings = {
        ...values
      };
      state.settings = {
        ...values,
        // In case settings were already changed, they should take precedence.
        ...(state.settings || {})
      };
    })
  });
  const fetchSaveSettingsStore = (0,_create_fetch_store__WEBPACK_IMPORTED_MODULE_6__.createFetchStore)({
    baseName: 'saveSettings',
    controlCallback: params => {
      const {
        values
      } = params;
      return (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__.set)(type, identifier, datapoint, values);
    },
    reducerCallback: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, values) => {
      state.savedSettings = {
        ...values
      };
      // Ensure client settings are refreshed from server.
      state.settings = {
        ...values
      };
    }),
    argsToParams: values => {
      return {
        values
      };
    },
    validateParams: ({
      values
    } = {}) => {
      invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,lodash__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(values), 'values is required.');
    }
  });

  // This will be populated further down with reducer functions for individual settings.
  const settingReducers = {};
  const actions = {
    /**
     * Sets settings for the given values.
     *
     * @since 1.6.0
     *
     * @param {Object} values Settings with their values to set.
     * @return {Object} Redux-style action.
     */
    setSettings(values) {
      invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,lodash__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(values), 'values is required.');
      return {
        payload: {
          values
        },
        type: SET_SETTINGS
      };
    },
    /**
     * Returns the current settings back to the current saved values.
     *
     * @since 1.7.1
     * @private
     *
     * @return {Object} Redux-style action.
     */
    rollbackSettings() {
      return {
        payload: {},
        type: ROLLBACK_SETTINGS
      };
    },
    /**
     * Returns a specific setting back to the current saved value.
     *
     * @since 1.147.0
     *
     * @param {string} setting The setting to rollback.
     * @return {Object} Redux-style action.
     */
    rollbackSetting(setting) {
      invariant__WEBPACK_IMPORTED_MODULE_0___default()(setting, 'setting is required.');
      return {
        payload: {
          setting
        },
        type: ROLLBACK_SETTING
      };
    },
    /**
     * Saves all current settings to the server.
     *
     * @since 1.6.0
     *
     * @return {Object} Response and error, if any.
     */
    *saveSettings() {
      const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
      yield clearError('saveSettings', []);
      const values = registry.select(STORE_NAME).getSettings();
      const {
        response,
        error
      } = yield fetchSaveSettingsStore.actions.fetchSaveSettings(values);
      if (error) {
        // Store error manually since saveSettings signature differs from fetchSaveSettings.
        yield receiveError(error, 'saveSettings', []);
      }
      return {
        response,
        error
      };
    }
  };
  const controls = {};

  // eslint-disable-next-line no-shadow
  const reducer = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, {
    type,
    payload
  }) => {
    switch (type) {
      case SET_SETTINGS:
        {
          const {
            values
          } = payload;
          state.settings = {
            ...(state.settings || {}),
            ...values
          };
          break;
        }
      case ROLLBACK_SETTINGS:
        {
          state.settings = state.savedSettings;
          break;
        }
      case ROLLBACK_SETTING:
        {
          const {
            setting
          } = payload;
          if (state.savedSettings[setting]) {
            state.settings = {
              ...(state.settings || {}),
              [setting]: state.savedSettings[setting]
            };
          }
          break;
        }
      default:
        {
          // Check if this action is for a reducer for an individual setting.
          if ('undefined' !== typeof settingReducers[type]) {
            settingReducers[type](state, {
              type,
              payload
            });
          }
          break;
        }
    }
  });
  const resolvers = {
    *getSettings() {
      const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
      const existingSettings = registry.select(STORE_NAME).getSettings();
      // If settings are already present, don't fetch them.
      if (!existingSettings) {
        yield fetchGetSettingsStore.actions.fetchGetSettings();
      }
    }
  };
  const {
    safeSelector: haveSettingsChanged,
    dangerousSelector: __dangerousHaveSettingsChanged
  } = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.createValidationSelector)(validateHaveSettingsChanged);
  const selectors = {
    /**
     * Indicates whether the current settings have changed from what is saved.
     *
     * @since 1.6.0
     * @since 1.77.0 Added ability to filter settings using `keys` argument.
     * @since 1.129.0 Changed the approach to use validateHaveSettingsChanged callback.
     * @since 1.131.0 Updated implementation to use safeSelector and dangerousSelector returned from createValidationSelector.
     *
     * @param {Object}     state Data store's state.
     * @param {Array|null} keys  Settings keys to check; if not provided, all settings are checked.
     * @return {boolean} True if the settings have changed, false otherwise.
     */
    haveSettingsChanged,
    __dangerousHaveSettingsChanged,
    /**
     * Gets the current settings.
     *
     * Returns `undefined` if notifications are not available/loaded.
     *
     * @since 1.6.0
     *
     * @param {Object} state Data store's state.
     * @return {(Object|undefined)} Settings with their values, or undefined.
     */
    getSettings(state) {
      return state.settings;
    },
    /**
     * Indicates whether the provided setting has changed from what is saved.
     *
     * @since 1.72.0
     *
     * @param {Object} state   Data store's state.
     * @param {string} setting The setting we want to check for saved changes.
     * @return {boolean} True if the settings have changed, false otherwise.
     */
    hasSettingChanged(state, setting) {
      invariant__WEBPACK_IMPORTED_MODULE_0___default()(setting, 'setting is required.');
      const {
        settings,
        savedSettings
      } = state;
      if (!settings || !savedSettings) {
        return false;
      }
      return !(0,lodash__WEBPACK_IMPORTED_MODULE_1__.isEqual)(settings[setting], savedSettings[setting]);
    },
    /**
     * Indicates whether saving the settings is currently in progress.
     *
     * @since 1.6.0
     *
     * @param {Object} state Data store's state.
     * @return {boolean} True if the settings are being saved, false otherwise.
     */
    isDoingSaveSettings(state) {
      // Since isFetchingSaveSettings (via createFetchStore)
      // holds information based on specific values but we only need
      // generic information here, we need to check whether ANY such
      // request is in progress.
      return Object.values(state.isFetchingSaveSettings).some(Boolean);
    },
    /**
     * Gets the owned settings slugs for this module.
     *
     * @since 1.77.0
     *
     * @param {Object} state Data store's state.
     * @return {Array|null} The array of owned settings slugs for this module if they exist. Returns `null` if no owned settings slugs exist.
     */
    getOwnedSettingsSlugs: state => {
      return state.ownedSettingsSlugs;
    },
    /**
     * Returns `true` if a module's "own settings" have changed; `false` if not.
     *
     * @since 1.77.0
     *
     * @param {Object} state Data store's state.
     * @return {boolean} `true` if the module's "own settings" have changed; `false` if not.
     */
    haveOwnedSettingsChanged: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => () => {
      const ownedSettingsSlugsToCheck = select(STORE_NAME).getOwnedSettingsSlugs();
      return select(STORE_NAME).haveSettingsChanged(ownedSettingsSlugsToCheck);
    })
  };

  // Define individual actions, selectors and related for sub-settings.
  settingSlugs.forEach(slug => {
    const pascalCaseSlug = (0,_transform_case__WEBPACK_IMPORTED_MODULE_5__.camelCaseToPascalCase)(slug);
    const constantSlug = (0,_transform_case__WEBPACK_IMPORTED_MODULE_5__.camelCaseToConstantCase)(slug);

    /**
     * Sets the setting indicated by the action name to the given value.
     *
     * @since 1.6.0
     *
     * @param {*} value Value for the setting.
     * @return {Object} Redux-style action.
     */
    actions[`set${pascalCaseSlug}`] = value => {
      invariant__WEBPACK_IMPORTED_MODULE_0___default()(typeof value !== 'undefined', `value is required for calls to set${pascalCaseSlug}().`);
      return {
        payload: {
          value
        },
        type: `SET_${constantSlug}`
      };
    };
    settingReducers[`SET_${constantSlug}`] = (state, {
      payload
    }) => {
      const {
        value
      } = payload;
      state.settings = {
        ...(state.settings || {}),
        [slug]: value
      };
    };

    /**
     * Gets the current value for the setting indicated by the selector name.
     *
     * @since 1.6.0
     *
     * @return {*} Setting value, or undefined.
     */
    selectors[`get${pascalCaseSlug}`] = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => () => {
      const settings = select(STORE_NAME).getSettings() || {};
      return settings[slug];
    });
  });
  const store = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.combineStores)(googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonStore, fetchGetSettingsStore, fetchSaveSettingsStore, {
    initialState,
    actions,
    controls,
    reducer,
    resolvers,
    selectors
  });
  return {
    ...store,
    STORE_NAME
  };
}

/**
 * Creates a default submitChanges control function.
 *
 * @since 1.21.0
 *
 * @param {string} slug      Module slug.
 * @param {string} storeName Datastore slug.
 * @return {Function} Control function to submit changes.
 */
function makeDefaultSubmitChanges(slug, storeName) {
  return async ({
    select,
    dispatch
  }) => {
    if (select(storeName).haveSettingsChanged()) {
      const {
        error
      } = await dispatch(storeName).saveSettings();
      if (error) {
        return {
          error
        };
      }
    }
    await (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__.invalidateCache)('modules', slug);
    return {};
  };
}

/**
 * Creates a default rollbackChanges control function.
 *
 * @since 1.45.0
 *
 * @param {string} storeName Datastore slug.
 * @return {Function} Control function to rollback settings changes.
 */
function makeDefaultRollbackChanges(storeName) {
  return ({
    select,
    dispatch
  }) => {
    if (select(storeName).haveSettingsChanged()) {
      return dispatch(storeName).rollbackSettings();
    }
    return {};
  };
}

/**
 * Creates a default canSubmitChanges function.
 *
 * @since 1.21.0
 *
 * @param {string} storeName Datastore slug.
 * @return {Function} A function to check if settings can be submitted.
 */
function makeDefaultCanSubmitChanges(storeName) {
  return select => {
    const strictSelect = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.createStrictSelect)(select);
    const {
      haveSettingsChanged,
      isDoingSubmitChanges
    } = strictSelect(storeName);
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(!isDoingSubmitChanges(), INVARIANT_DOING_SUBMIT_CHANGES);
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(haveSettingsChanged(), INVARIANT_SETTINGS_NOT_CHANGED);
  };
}

/**
 * Creates Default haveSettingsChanged.
 *
 * @since 1.129.0
 *
 * @return {boolean} True if the settings have changed, false otherwise.
 */
function makeDefaultHaveSettingsChanged() {
  return (select, state, keys) => {
    const {
      settings,
      savedSettings
    } = state;
    if (keys) {
      invariant__WEBPACK_IMPORTED_MODULE_0___default()(!(0,lodash__WEBPACK_IMPORTED_MODULE_1__.isEqual)((0,lodash__WEBPACK_IMPORTED_MODULE_1__.pick)(settings, keys), (0,lodash__WEBPACK_IMPORTED_MODULE_1__.pick)(savedSettings, keys)), INVARIANT_SETTINGS_NOT_CHANGED);
    }
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(!(0,lodash__WEBPACK_IMPORTED_MODULE_1__.isEqual)(settings, savedSettings), INVARIANT_SETTINGS_NOT_CHANGED);
  };
}

/***/ }),

/***/ "./js/googlesitekit/data/create-snapshot-store.js":
/*!********************************************************!*\
  !*** ./js/googlesitekit/data/create-snapshot-store.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   createSnapshotStore: () => (/* binding */ createSnapshotStore),
/* harmony export */   getStoresWithSnapshots: () => (/* binding */ getStoresWithSnapshots),
/* harmony export */   restoreAllSnapshots: () => (/* binding */ restoreAllSnapshots),
/* harmony export */   snapshotAllStores: () => (/* binding */ snapshotAllStores)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_googlesitekit_api_cache__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/api/cache */ "./js/googlesitekit/api/cache.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/**
 * Provides a datastore for snapshotting and restoring state.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Internal dependencies
 */




// Actions
const CREATE_SNAPSHOT = 'CREATE_SNAPSHOT';
const DELETE_SNAPSHOT = 'DELETE_SNAPSHOT';
const RESTORE_SNAPSHOT = 'RESTORE_SNAPSHOT';
const SET_STATE_FROM_SNAPSHOT = 'SET_STATE_FROM_SNAPSHOT';

/**
 * Creates a store object that includes actions and controls for restoring/creating state snapshots.
 *
 * @since 1.9.0
 * @since 1.163.0 Added the ability to pick specific parts of the state to save in the snapshot.
 * @private
 *
 * @param {string}          storeName                The name of the store to snapshot in the cache.
 * @param {Object}          [options]                Optional configuration object.
 * @param {string|string[]} [options.keysToSnapshot] Property path(s) to pick from state when creating snapshots.
 * @return {Object} The snapshot store object.
 */
function createSnapshotStore(storeName, {
  keysToSnapshot
} = {}) {
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(storeName, 'storeName is required to create a snapshot store.');
  const initialState = {};
  const actions = {
    /**
     * Deletes a snapshot of state for a storeName, using our cache API.
     *
     * @since 1.9.0
     * @private
     *
     * @return {boolean} Cache deletion response.
     */
    *deleteSnapshot() {
      const cacheResult = yield {
        payload: {},
        type: DELETE_SNAPSHOT
      };
      return cacheResult;
    },
    /**
     * Restores a snapshot of state for a storeName, if available, using our cache API.
     *
     * @since 1.9.0
     * @private
     *
     * @param {Object}  [options]                   Options object.
     * @param {boolean} [options.clearAfterRestore] Whether or not to delete snapshot after restore. Default: true.
     * @return {boolean} Cache restoration response.
     */
    *restoreSnapshot(options = {}) {
      const {
        clearAfterRestore = true
      } = options;
      const {
        cacheHit,
        value
      } = yield {
        payload: {},
        type: RESTORE_SNAPSHOT
      };
      if (cacheHit) {
        yield {
          payload: {
            snapshot: value
          },
          type: SET_STATE_FROM_SNAPSHOT
        };
        if (clearAfterRestore) {
          yield {
            payload: {},
            type: DELETE_SNAPSHOT
          };
        }
      }
      return cacheHit;
    },
    /**
     * Creates a snapshot of the current state of this store, using our cache API.
     *
     * @since 1.9.0
     * @private
     *
     * @return {boolean} Cache write response.
     */
    *createSnapshot() {
      const cacheResult = yield {
        payload: {},
        type: CREATE_SNAPSHOT
      };
      return cacheResult;
    }
  };
  const controls = {
    [DELETE_SNAPSHOT]: () => {
      return (0,_js_googlesitekit_api_cache__WEBPACK_IMPORTED_MODULE_3__.deleteItem)(`datastore::cache::${storeName}`);
    },
    [CREATE_SNAPSHOT]: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.createRegistryControl)(registry => () => {
      const state = registry.stores[storeName].store.getState();
      const stateToSnapshot = keysToSnapshot?.length > 0 ? (0,lodash__WEBPACK_IMPORTED_MODULE_1__.pick)(state, keysToSnapshot) : state;
      return (0,_js_googlesitekit_api_cache__WEBPACK_IMPORTED_MODULE_3__.setItem)(`datastore::cache::${storeName}`, stateToSnapshot);
    }),
    [RESTORE_SNAPSHOT]: () => {
      // Only get snapshots made within the last hour.
      return (0,_js_googlesitekit_api_cache__WEBPACK_IMPORTED_MODULE_3__.getItem)(`datastore::cache::${storeName}`, _js_util__WEBPACK_IMPORTED_MODULE_4__.HOUR_IN_SECONDS);
    }
  };
  function reducer(state = initialState, {
    type,
    payload
  }) {
    // eslint-disable-line no-shadow
    switch (type) {
      case SET_STATE_FROM_SNAPSHOT:
        {
          const {
            snapshot
          } = payload;
          // Exclude any top-level errors from the restored state.
          // eslint-disable-next-line no-unused-vars
          const {
            error,
            ...newState
          } = snapshot;

          // If only a part of the state has been added to the snapshot, then
          // we should update the initial state with partial data restored
          // from the snapshot.
          if (keysToSnapshot?.length > 0) {
            return {
              ...state,
              ...newState
            };
          }
          return newState;
        }
      default:
        {
          return state;
        }
    }
  }
  return {
    initialState,
    actions,
    controls,
    reducer
  };
}

/**
 * Inspects a registry to find all stores that support our snapshot features.
 *
 * @since 1.9.0
 * @private
 *
 * @param {wp.data.registry} registry Optional. Registry object to inspect for stores that support state restoration. Defaults to `googlesitekit.data`.
 * @return {Object} The snapshot store object.
 */
function getStoresWithSnapshots(registry = (googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default())) {
  return Object.values(registry.stores).filter(store => {
    return Object.keys(store.getActions()).includes('restoreSnapshot');
  });
}

/**
 * Creates snapshots of all supporting stores.
 *
 * @since 1.9.0
 * @private
 *
 * @param {wp.data.registry} [registry] Optional. Registry object to inspect for stores that support state restoration. Defaults to `googlesitekit.data`.
 * @return {Promise} Promise resolves once all snapshots have been taken.
 */
function snapshotAllStores(registry = (googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default())) {
  return Promise.all(getStoresWithSnapshots(registry).map(store => {
    return store.getActions().createSnapshot();
  }));
}

/**
 * Restores state for all snapshots that support it.
 *
 * Only restores snapshots for stores that have `restoreSnapshot` action, and
 * clears the snapshot afterward, so more stores will not be restored unless
 * a snapshot was saved on the last pageview.
 *
 * @since 1.9.0
 * @private
 *
 * @param {wp.data.registry} [registry] Optional. Registry object to inspect for stores that support state restoration. Defaults to `googlesitekit.data`.
 * @return {Promise} Promise resolves once all snapshots have been restored.
 */
function restoreAllSnapshots(registry = (googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default())) {
  return Promise.all(getStoresWithSnapshots(registry).map(store => {
    return store.getActions().restoreSnapshot();
  }));
}

/***/ }),

/***/ "./js/googlesitekit/data/index.js":
/*!****************************************!*\
  !*** ./js/googlesitekit/data/index.js ***!
  \****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   RegistryProvider: () => (/* reexport safe */ _wordpress_data__WEBPACK_IMPORTED_MODULE_11__["default"]),
/* harmony export */   combineStores: () => (/* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_1__.combineStores),
/* harmony export */   commonActions: () => (/* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_1__.commonActions),
/* harmony export */   commonControls: () => (/* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_1__.commonControls),
/* harmony export */   commonStore: () => (/* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_1__.commonStore),
/* harmony export */   controls: () => (/* reexport safe */ _wordpress_data__WEBPACK_IMPORTED_MODULE_4__.controls),
/* harmony export */   createReducer: () => (/* reexport safe */ _create_reducer__WEBPACK_IMPORTED_MODULE_2__.createReducer),
/* harmony export */   createRegistryControl: () => (/* reexport safe */ _wordpress_data__WEBPACK_IMPORTED_MODULE_5__.createRegistryControl),
/* harmony export */   createRegistrySelector: () => (/* reexport safe */ _wordpress_data__WEBPACK_IMPORTED_MODULE_5__.createRegistrySelector),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */   useDispatch: () => (/* reexport safe */ _wordpress_data__WEBPACK_IMPORTED_MODULE_7__["default"]),
/* harmony export */   useInViewSelect: () => (/* reexport safe */ _js_hooks_useInViewSelect__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect),
/* harmony export */   useRegistry: () => (/* reexport safe */ _wordpress_data__WEBPACK_IMPORTED_MODULE_8__["default"]),
/* harmony export */   useSelect: () => (/* reexport safe */ _wordpress_data__WEBPACK_IMPORTED_MODULE_6__["default"]),
/* harmony export */   withDispatch: () => (/* reexport safe */ _wordpress_data__WEBPACK_IMPORTED_MODULE_10__["default"]),
/* harmony export */   withSelect: () => (/* reexport safe */ _wordpress_data__WEBPACK_IMPORTED_MODULE_9__["default"])
/* harmony export */ });
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/data */ "../node_modules/@wordpress/data/build-module/registry.js");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/data */ "../node_modules/@wordpress/data/build-module/controls.js");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/data */ "../node_modules/@wordpress/data/build-module/factory.js");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/data */ "../node_modules/@wordpress/data/build-module/components/use-select/index.js");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/data */ "../node_modules/@wordpress/data/build-module/components/use-dispatch/use-dispatch.js");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/data */ "../node_modules/@wordpress/data/build-module/components/registry-provider/use-registry.js");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/data */ "../node_modules/@wordpress/data/build-module/components/with-select/index.js");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @wordpress/data */ "../node_modules/@wordpress/data/build-module/components/with-dispatch/index.js");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @wordpress/data */ "../node_modules/@wordpress/data/build-module/components/registry-provider/context.js");
/* harmony import */ var _js_hooks_useInViewSelect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/hooks/useInViewSelect */ "./js/hooks/useInViewSelect.js");
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ "./js/googlesitekit/data/utils.js");
/* harmony import */ var _create_reducer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./create-reducer */ "./js/googlesitekit/data/create-reducer.js");
/**
 * Site Kit @wordpress/data (eg Redux-style) data store.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */




/**
 * @since 1.166.0
 *
 * @typedef {Object} WPDataRegistry
 * @property {Function} registerStore Given a namespace key and settings
 *                                    object, registers a new namespace
 *                                    store.
 * @property {Function} subscribe     Given a function callback, invokes
 *                                    the callback on any change to state
 *                                    within any registered store.
 * @property {Function} select        Given a namespace key, returns an
 *                                    object of the store's registered
 *                                    selectors.
 * @property {Function} dispatch      Given a namespace key, returns an
 *                                    object of the store's registered
 *                                    action dispatchers.
 * @property {Function} resolveSelect Given a namespace key, returns an
 *                                    object containing the store's
 *                                    selectors modified so that they return
 *                                    promises that resolve to their eventual
 *                                    values, after any resolvers have run.
 */

/**
 * The Site Kit data registry.
 *
 * This should not be imported directly outside of `googlesitekit-*` files
 * that need access to the registry to register datastores/widgets/etc.
 *
 * Instead, use the exported functions (eg `useSelect`,
 * `createRegistrySelector`, etc.) from the `googlesitekit-data` package to
 * access parts of the registry.
 *
 * @since 1.3.0 Data registry introduced.
 * @since 1.130.0 Deprecated for general use in favor of named exports from `googlesitekit-data` package.
 * @deprecated
 */
const Data = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_3__.createRegistry)({}, __webpack_require__.g.wp?.data);

// Attach some of our utility functions to the registry so third-party
// developers can use them.
Data.combineStores = _utils__WEBPACK_IMPORTED_MODULE_1__.combineStores;
Data.commonActions = _utils__WEBPACK_IMPORTED_MODULE_1__.commonActions;
Data.commonControls = _utils__WEBPACK_IMPORTED_MODULE_1__.commonControls;
Data.commonStore = _utils__WEBPACK_IMPORTED_MODULE_1__.commonStore;
Data.createReducer = _create_reducer__WEBPACK_IMPORTED_MODULE_2__.createReducer;

// Attach our custom, useInViewSelect hook to the registry so third-party
// developers can use it.
Data.useInViewSelect = _js_hooks_useInViewSelect__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect;

// Attach some WordPress data functions to the registry so third-party
// developers can use them without importing '@wordpress/data'.
Data.controls = _wordpress_data__WEBPACK_IMPORTED_MODULE_4__.controls;
Data.createRegistryControl = _wordpress_data__WEBPACK_IMPORTED_MODULE_5__.createRegistryControl;
Data.createRegistrySelector = _wordpress_data__WEBPACK_IMPORTED_MODULE_5__.createRegistrySelector;
Data.useSelect = _wordpress_data__WEBPACK_IMPORTED_MODULE_6__["default"];
Data.useDispatch = _wordpress_data__WEBPACK_IMPORTED_MODULE_7__["default"];
Data.useRegistry = _wordpress_data__WEBPACK_IMPORTED_MODULE_8__["default"];
Data.withSelect = _wordpress_data__WEBPACK_IMPORTED_MODULE_9__["default"];
Data.withDispatch = _wordpress_data__WEBPACK_IMPORTED_MODULE_10__["default"];
Data.RegistryProvider = _wordpress_data__WEBPACK_IMPORTED_MODULE_11__["default"];

/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Data);

/***/ }),

/***/ "./js/googlesitekit/data/transform-case.js":
/*!*************************************************!*\
  !*** ./js/googlesitekit/data/transform-case.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   camelCaseToConstantCase: () => (/* binding */ camelCaseToConstantCase),
/* harmony export */   camelCaseToPascalCase: () => (/* binding */ camelCaseToPascalCase),
/* harmony export */   hyphenCaseToPascalCase: () => (/* binding */ hyphenCaseToPascalCase)
/* harmony export */ });
/**
 * Data store utilities for transforming names to a certain case.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Transforms a camelCase name into its PascalCase name.
 *
 * @since 1.10.0
 * @private
 *
 * @param {string} name "camelCase" name to transform.
 * @return {string} PascalCase name.
 */
function camelCaseToPascalCase(name) {
  return name.charAt(0).toUpperCase() + name.slice(1);
}

/**
 * Transforms a camelCase name into its CONSTANT_CASE name.
 *
 * @since 1.10.0
 * @private
 *
 * @param {string} name "camelCase" name to transform.
 * @return {string} CONSTANT_CASE name.
 */
function camelCaseToConstantCase(name) {
  return name.replace(/([a-z0-9]{1})([A-Z]{1})/g, '$1_$2').toUpperCase();
}

/**
 * Transforms a hyphen-case name into its PascalCase name.
 *
 * @since 1.30.0
 * @private
 *
 * @param {string} name "hyphen-case" name to transform.
 * @return {string} PascalCase name.
 */
function hyphenCaseToPascalCase(name) {
  return name.split('-').map(part => part.charAt(0).toUpperCase() + part.slice(1)).join('');
}

/***/ }),

/***/ "./js/googlesitekit/data/utils.js":
/*!****************************************!*\
  !*** ./js/googlesitekit/data/utils.js ***!
  \****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   collect: () => (/* binding */ collect),
/* harmony export */   collectActions: () => (/* binding */ collectActions),
/* harmony export */   collectControls: () => (/* binding */ collectControls),
/* harmony export */   collectName: () => (/* binding */ collectName),
/* harmony export */   collectReducers: () => (/* binding */ collectReducers),
/* harmony export */   collectResolvers: () => (/* binding */ collectResolvers),
/* harmony export */   collectSelectors: () => (/* binding */ collectSelectors),
/* harmony export */   collectState: () => (/* binding */ collectState),
/* harmony export */   combineStores: () => (/* binding */ combineStores),
/* harmony export */   commonActions: () => (/* binding */ commonActions),
/* harmony export */   commonControls: () => (/* binding */ commonControls),
/* harmony export */   commonStore: () => (/* binding */ commonStore),
/* harmony export */   createStrictSelect: () => (/* binding */ createStrictSelect),
/* harmony export */   createValidatedAction: () => (/* binding */ createValidatedAction),
/* harmony export */   createValidationSelector: () => (/* binding */ createValidationSelector)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! memize */ "../node_modules/memize/index.js");
/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(memize__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/data */ "../node_modules/@wordpress/data/build-module/factory.js");
/**
 * Data store utilities.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */




/**
 * WordPress dependencies
 */

const GET_REGISTRY = 'GET_REGISTRY';
const AWAIT = 'AWAIT';

/**
 * Collects and combines multiple objects of similar shape.
 *
 * Used to combine objects like actions, selectors, etc. for a data
 * store while ensuring no keys/action names/selector names are duplicated.
 *
 * Effectively this is an object spread, but throws an error if keys are
 * duplicated.
 *
 * @since 1.5.0
 * @private
 *
 * @param {...Object} items A list of arguments, each one should be an object to combine into one.
 * @return {Object} The combined object.
 */
function collect(...items) {
  const collectedObject = items.reduce((acc, item) => {
    return {
      ...acc,
      ...item
    };
  }, {});
  const functionNames = items.reduce((acc, itemSet) => {
    return [...acc, ...Object.keys(itemSet)];
  }, []);
  const duplicates = findDuplicates(functionNames);
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(duplicates.length === 0, `collect() cannot accept collections with duplicate keys. Your call to collect() contains the following duplicated functions: ${duplicates.join(', ')}. Check your data stores for duplicates.`);
  return collectedObject;
}

/**
 * Collects all actions.
 *
 * @since 1.5.0
 *
 * @param {...Object} args A list of objects, each containing their own actions.
 * @return {Object} The combined object.
 */
const collectActions = collect;

/**
 * Collects all controls.
 *
 * @since 1.5.0
 *
 * @param {...Object} args A list of objects, each containing their own controls.
 * @return {Object} The combined object.
 */
const collectControls = collect;

/**
 * Collects all reducers and (optionally) provides initial state.
 *
 * If the first argument passed is not a function, it will be used as the
 * combined reducer's `initialState`.
 *
 * @since 1.5.0
 *
 * @param {...(Object|Function)} args A list of reducers, each containing their own controls. If the first argument is not a function, it will be used as the combined reducer's `initialState`.
 * @return {Function} A Redux-style reducer.
 */
function collectReducers(...args) {
  const reducers = [...args];
  let initialState;
  if (typeof reducers[0] !== 'function') {
    initialState = reducers.shift();
  }
  return (state = initialState, action = {}) => {
    return reducers.reduce((newState, reducer) => {
      return reducer(newState, action);
    }, state);
  };
}

/**
 * Collects all resolvers.
 *
 * @since 1.5.0
 *
 * @param {...Object} args A list of objects, each containing their own resolvers.
 * @return {Object} The combined object.
 */
const collectResolvers = collect;

/**
 * Collects all selectors.
 *
 * @since 1.5.0
 *
 * @param {...Object} args A list of objects, each containing their own selectors.
 * @return {Object} The combined object.
 */
const collectSelectors = collect;

/**
 * Collects all state values.
 *
 * @since 1.5.0
 *
 * @param {...Object} args A list of objects, each containing their own state values.
 * @return {Object} The combined object.
 */
const collectState = collect;

/**
 * Collects all store names.
 *
 * This function's main purpose is to ensure generated store names for a single store match.
 *
 * @since 1.6.0
 *
 * @param {...string} args A list of store names, all of which must be equal.
 * @return {string} The single store name.
 */
function collectName(...args) {
  const names = [...args];
  const duplicates = findDuplicates(names);
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(duplicates.length === names.length - 1, 'collectName() must not receive different names.');
  return names.shift();
}

/**
 * Passes through state unmodified; eg. an empty reducer.
 *
 * @since 1.8.0
 * @private
 *
 * @param {Object} state A store's state.
 * @return {Object} The same state data as passed in `state`.
 */
function passthroughReducer(state) {
  return state;
}

/**
 * Combines multiple stores.
 *
 * @since 1.8.0
 *
 * @param {...Object} stores A list of objects, each a store containing one or more of the following keys: initialState, actions, controls, reducer, resolvers, selectors.
 * @return {Object} The combined store.
 */
function combineStores(...stores) {
  const combinedInitialState = collectState(...stores.map(store => store.initialState || {}));
  return {
    initialState: combinedInitialState,
    controls: collectControls(...stores.map(store => store.controls || {})),
    actions: collectActions(...stores.map(store => store.actions || {})),
    reducer: collectReducers(combinedInitialState, ...stores.map(store => store.reducer || passthroughReducer)),
    resolvers: collectResolvers(...stores.map(store => store.resolvers || {})),
    selectors: collectSelectors(...stores.map(store => store.selectors || {}))
  };
}

/**
 * An object of common actions most stores will use.
 *
 * @since 1.7.0
 *
 * @return {Object} Key/value list of common actions most stores will want.
 */
const commonActions = {
  /**
   * Dispatches an action and calls a control to get the current data registry.
   *
   * Useful for controls and resolvers that wish to dispatch actions/use selectors
   * on the current data registry.
   *
   * @since 1.7.0
   *
   * @return {Object} FSA-compatible action.
   */
  getRegistry() {
    return {
      payload: {},
      type: GET_REGISTRY
    };
  },
  /**
   * Dispatches an action and calls a control to return the promise resolution.
   *
   * Useful for controls and resolvers that wish to call an asynchronous function or other promise.
   *
   * @since 1.22.0
   *
   * @param {Promise} value A promise to resolve.
   * @return {Object} Object with resolved promise.
   */
  *await(value) {
    return {
      payload: {
        value
      },
      type: AWAIT
    };
  }
};

/**
 * An object of common controls most stores will use.
 *
 * @since 1.7.0
 *
 * @return {Object} Key/value list of common controls most stores will want.
 */
const commonControls = {
  /**
   * Returns the current registry.
   *
   * Useful for controls and resolvers that wish to dispatch actions/use selectors
   * on the current data registry.
   *
   * @since 1.7.0
   *
   * @return {Object} FSA-compatible action.
   */
  [GET_REGISTRY]: (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_3__.createRegistryControl)(registry => () => registry),
  /**
   * Returns a resolved promise.
   *
   * @since 1.22.0
   *
   * @param {Object} payload         Object containing a promise.
   * @param {Object} payload.payload Object containing a promise.
   * @return {*} Resolved promise.
   */
  [AWAIT]: ({
    payload
  }) => payload.value
};

/**
 * Finds all duplicate items in an array and return them.
 *
 * @since 1.5.0
 * @private
 *
 * @param {Array} array Any array.
 * @return {Array} All values in the input array that were duplicated.
 */
function findDuplicates(array) {
  const duplicates = [];
  const counts = {};
  for (let i = 0; i < array.length; i++) {
    const item = array[i];
    counts[item] = counts[item] >= 1 ? counts[item] + 1 : 1;
    if (counts[item] > 1) {
      duplicates.push(item);
    }
  }
  return duplicates;
}

/**
 * A store containing the common actions, controls and reducer that all stores will use.
 *
 * @since 1.8.0
 *
 * @return {Object} Object with common actions, controls and reducer.
 */
const commonStore = {
  actions: commonActions,
  controls: commonControls,
  reducer: passthroughReducer
};

/**
 * Creates a strict version of registry.select for ensuring that a selector is resolved at the time of calling.
 *
 * Not intended to be used directly. This is useful in the context of validation functions
 * to save checking for undefined on every result.
 *
 * Given the registry.select function instance, a new function is returned
 * with the same API as `select()` but will throw an error if the result
 * of the selector function is `undefined`.
 *
 * Ideally this would use something like `hasFinishedResolution` instead,
 * but there is no way to traverse the selectors used internally to identify
 * dependent selectors that have resolvers as many selectors are composed of
 * higher-level selectors internally which is where a resolver is normally implemented.
 *
 * @since 1.18.0
 * @private
 *
 * @param {Function} select The registry.select function.
 * @return {Function} The strict version of registry.select.
 */
function createStrictSelect(select) {
  return storeName => {
    return getStrictSelectors(select(storeName));
  };
}

// Based on {@link https://github.com/WordPress/gutenberg/blob/b1c8026087dfb026eff0a023a5f7febe28c876de/packages/data/src/registry.js#L91}
const getStrictSelectors = memize__WEBPACK_IMPORTED_MODULE_1___default()(selectors => (0,lodash__WEBPACK_IMPORTED_MODULE_2__.mapValues)(selectors, (selector, selectorName) => (...args) => {
  const returnValue = selector(...args);
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(returnValue !== undefined, `${selectorName}(...) is not resolved`);
  return returnValue;
}));

/**
 * Creates two registry selectors that call the incoming function to validate the current state.
 *
 * @since 1.19.0
 *
 * @param {Function} validate         Validation function callback.
 * @param {Object}   [options]        Options to modify the behavior of the generated selectors.
 * @param {boolean}  [options.negate] Whether to negate the boolean result or not. Default: false.
 * @return {Object} Safe and dangerous selectors.
 */
function createValidationSelector(validate, {
  negate = false
} = {}) {
  const safeSelector = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => (state, ...args) => {
    const pass = negate ? false : true;
    const fail = negate ? true : false;
    try {
      validate(select, state, ...args);
      return pass;
    } catch {
      return fail;
    }
  });
  const dangerousSelector = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => (state, ...args) => {
    validate(select, state, ...args);
  });
  return {
    safeSelector,
    dangerousSelector
  };
}

/**
 * Creates a validated action creator.
 *
 * @since 1.32.0
 *
 * @param {Function} validate      A function for validating action arguments.
 * @param {Function} actionCreator A function for returning or yielding redux-style actions.
 * @return {Function} An enhanced action creator.
 */
function createValidatedAction(validate, actionCreator) {
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(typeof validate === 'function', 'a validator function is required.');
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(typeof actionCreator === 'function', 'an action creator function is required.');
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(validate[Symbol.toStringTag] !== 'Generator' && validate[Symbol.toStringTag] !== 'GeneratorFunction', 'an action’s validator function must not be a generator.');
  return (...args) => {
    validate(...args);
    return actionCreator(...args);
  };
}

/***/ }),

/***/ "./js/googlesitekit/datastore/forms/constants.js":
/*!*******************************************************!*\
  !*** ./js/googlesitekit/datastore/forms/constants.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   CORE_FORMS: () => (/* binding */ CORE_FORMS)
/* harmony export */ });
/**
 * `core/forms` data store: constants.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const CORE_FORMS = 'core/forms';

/***/ }),

/***/ "./js/googlesitekit/datastore/location/constants.js":
/*!**********************************************************!*\
  !*** ./js/googlesitekit/datastore/location/constants.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   CORE_LOCATION: () => (/* binding */ CORE_LOCATION)
/* harmony export */ });
/**
 * `core/location` data store: constants.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const CORE_LOCATION = 'core/location';

/***/ }),

/***/ "./js/googlesitekit/datastore/site/constants.js":
/*!******************************************************!*\
  !*** ./js/googlesitekit/datastore/site/constants.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   AMP_MODE_PRIMARY: () => (/* binding */ AMP_MODE_PRIMARY),
/* harmony export */   AMP_MODE_SECONDARY: () => (/* binding */ AMP_MODE_SECONDARY),
/* harmony export */   CORE_SITE: () => (/* binding */ CORE_SITE)
/* harmony export */ });
/**
 * `core/site` data store: constants.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const CORE_SITE = 'core/site';
const AMP_MODE_PRIMARY = 'primary';
const AMP_MODE_SECONDARY = 'secondary';

/***/ }),

/***/ "./js/googlesitekit/datastore/ui/constants.js":
/*!****************************************************!*\
  !*** ./js/googlesitekit/datastore/ui/constants.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   ACTIVE_CONTEXT_ID: () => (/* binding */ ACTIVE_CONTEXT_ID),
/* harmony export */   CORE_UI: () => (/* binding */ CORE_UI)
/* harmony export */ });
/**
 * `core/ui` data store: constants.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const CORE_UI = 'core/ui';
const ACTIVE_CONTEXT_ID = 'activeContextID';

/***/ }),

/***/ "./js/googlesitekit/datastore/user/constants.js":
/*!******************************************************!*\
  !*** ./js/googlesitekit/datastore/user/constants.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   CORE_USER: () => (/* binding */ CORE_USER),
/* harmony export */   DISCONNECTED_REASON_CONNECTED_URL_MISMATCH: () => (/* binding */ DISCONNECTED_REASON_CONNECTED_URL_MISMATCH),
/* harmony export */   EMAIL_REPORT_FREQUENCIES: () => (/* binding */ EMAIL_REPORT_FREQUENCIES),
/* harmony export */   ERROR_CODE_ADBLOCKER_ACTIVE: () => (/* binding */ ERROR_CODE_ADBLOCKER_ACTIVE),
/* harmony export */   FORM_TEMPORARY_PERSIST_PERMISSION_ERROR: () => (/* binding */ FORM_TEMPORARY_PERSIST_PERMISSION_ERROR),
/* harmony export */   GLOBAL_SURVEYS_TIMEOUT_SLUG: () => (/* binding */ GLOBAL_SURVEYS_TIMEOUT_SLUG),
/* harmony export */   KM_ANALYTICS_ADSENSE_TOP_EARNING_CONTENT: () => (/* binding */ KM_ANALYTICS_ADSENSE_TOP_EARNING_CONTENT),
/* harmony export */   KM_ANALYTICS_ENGAGED_TRAFFIC_SOURCE: () => (/* binding */ KM_ANALYTICS_ENGAGED_TRAFFIC_SOURCE),
/* harmony export */   KM_ANALYTICS_LEAST_ENGAGING_PAGES: () => (/* binding */ KM_ANALYTICS_LEAST_ENGAGING_PAGES),
/* harmony export */   KM_ANALYTICS_MOST_ENGAGING_PAGES: () => (/* binding */ KM_ANALYTICS_MOST_ENGAGING_PAGES),
/* harmony export */   KM_ANALYTICS_NEW_VISITORS: () => (/* binding */ KM_ANALYTICS_NEW_VISITORS),
/* harmony export */   KM_ANALYTICS_PAGES_PER_VISIT: () => (/* binding */ KM_ANALYTICS_PAGES_PER_VISIT),
/* harmony export */   KM_ANALYTICS_POPULAR_AUTHORS: () => (/* binding */ KM_ANALYTICS_POPULAR_AUTHORS),
/* harmony export */   KM_ANALYTICS_POPULAR_CONTENT: () => (/* binding */ KM_ANALYTICS_POPULAR_CONTENT),
/* harmony export */   KM_ANALYTICS_POPULAR_PRODUCTS: () => (/* binding */ KM_ANALYTICS_POPULAR_PRODUCTS),
/* harmony export */   KM_ANALYTICS_RETURNING_VISITORS: () => (/* binding */ KM_ANALYTICS_RETURNING_VISITORS),
/* harmony export */   KM_ANALYTICS_TOP_CATEGORIES: () => (/* binding */ KM_ANALYTICS_TOP_CATEGORIES),
/* harmony export */   KM_ANALYTICS_TOP_CITIES: () => (/* binding */ KM_ANALYTICS_TOP_CITIES),
/* harmony export */   KM_ANALYTICS_TOP_CITIES_DRIVING_ADD_TO_CART: () => (/* binding */ KM_ANALYTICS_TOP_CITIES_DRIVING_ADD_TO_CART),
/* harmony export */   KM_ANALYTICS_TOP_CITIES_DRIVING_LEADS: () => (/* binding */ KM_ANALYTICS_TOP_CITIES_DRIVING_LEADS),
/* harmony export */   KM_ANALYTICS_TOP_CITIES_DRIVING_PURCHASES: () => (/* binding */ KM_ANALYTICS_TOP_CITIES_DRIVING_PURCHASES),
/* harmony export */   KM_ANALYTICS_TOP_CONVERTING_TRAFFIC_SOURCE: () => (/* binding */ KM_ANALYTICS_TOP_CONVERTING_TRAFFIC_SOURCE),
/* harmony export */   KM_ANALYTICS_TOP_COUNTRIES: () => (/* binding */ KM_ANALYTICS_TOP_COUNTRIES),
/* harmony export */   KM_ANALYTICS_TOP_DEVICE_DRIVING_PURCHASES: () => (/* binding */ KM_ANALYTICS_TOP_DEVICE_DRIVING_PURCHASES),
/* harmony export */   KM_ANALYTICS_TOP_PAGES_DRIVING_LEADS: () => (/* binding */ KM_ANALYTICS_TOP_PAGES_DRIVING_LEADS),
/* harmony export */   KM_ANALYTICS_TOP_RECENT_TRENDING_PAGES: () => (/* binding */ KM_ANALYTICS_TOP_RECENT_TRENDING_PAGES),
/* harmony export */   KM_ANALYTICS_TOP_RETURNING_VISITOR_PAGES: () => (/* binding */ KM_ANALYTICS_TOP_RETURNING_VISITOR_PAGES),
/* harmony export */   KM_ANALYTICS_TOP_TRAFFIC_SOURCE: () => (/* binding */ KM_ANALYTICS_TOP_TRAFFIC_SOURCE),
/* harmony export */   KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_ADD_TO_CART: () => (/* binding */ KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_ADD_TO_CART),
/* harmony export */   KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_LEADS: () => (/* binding */ KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_LEADS),
/* harmony export */   KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_PURCHASES: () => (/* binding */ KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_PURCHASES),
/* harmony export */   KM_ANALYTICS_VISITS_PER_VISITOR: () => (/* binding */ KM_ANALYTICS_VISITS_PER_VISITOR),
/* harmony export */   KM_ANALYTICS_VISIT_LENGTH: () => (/* binding */ KM_ANALYTICS_VISIT_LENGTH),
/* harmony export */   KM_SEARCH_CONSOLE_POPULAR_KEYWORDS: () => (/* binding */ KM_SEARCH_CONSOLE_POPULAR_KEYWORDS),
/* harmony export */   PERMISSION_AUTHENTICATE: () => (/* binding */ PERMISSION_AUTHENTICATE),
/* harmony export */   PERMISSION_DELEGATE_MODULE_SHARING_MANAGEMENT: () => (/* binding */ PERMISSION_DELEGATE_MODULE_SHARING_MANAGEMENT),
/* harmony export */   PERMISSION_MANAGE_MODULE_SHARING_OPTIONS: () => (/* binding */ PERMISSION_MANAGE_MODULE_SHARING_OPTIONS),
/* harmony export */   PERMISSION_MANAGE_OPTIONS: () => (/* binding */ PERMISSION_MANAGE_OPTIONS),
/* harmony export */   PERMISSION_READ_SHARED_MODULE_DATA: () => (/* binding */ PERMISSION_READ_SHARED_MODULE_DATA),
/* harmony export */   PERMISSION_SETUP: () => (/* binding */ PERMISSION_SETUP),
/* harmony export */   PERMISSION_UPDATE_PLUGINS: () => (/* binding */ PERMISSION_UPDATE_PLUGINS),
/* harmony export */   PERMISSION_VIEW_DASHBOARD: () => (/* binding */ PERMISSION_VIEW_DASHBOARD),
/* harmony export */   PERMISSION_VIEW_MODULE_DETAILS: () => (/* binding */ PERMISSION_VIEW_MODULE_DETAILS),
/* harmony export */   PERMISSION_VIEW_POSTS_INSIGHTS: () => (/* binding */ PERMISSION_VIEW_POSTS_INSIGHTS),
/* harmony export */   PERMISSION_VIEW_SHARED_DASHBOARD: () => (/* binding */ PERMISSION_VIEW_SHARED_DASHBOARD),
/* harmony export */   allKeyMetricsTileWidgets: () => (/* binding */ allKeyMetricsTileWidgets),
/* harmony export */   keyMetricsGA4Widgets: () => (/* binding */ keyMetricsGA4Widgets)
/* harmony export */ });
/**
 * `core/user` data store: constants.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const CORE_USER = 'core/user';
const DISCONNECTED_REASON_CONNECTED_URL_MISMATCH = 'connected_url_mismatch';
const GLOBAL_SURVEYS_TIMEOUT_SLUG = '__global';
const FORM_TEMPORARY_PERSIST_PERMISSION_ERROR = 'temporary_persist_permission_error';
const ERROR_CODE_ADBLOCKER_ACTIVE = 'adblocker_active';

// Email Report Frequency options.
const EMAIL_REPORT_FREQUENCIES = ['weekly', 'monthly', 'quarterly'];

// Permissions list.
const PERMISSION_AUTHENTICATE = 'googlesitekit_authenticate';
const PERMISSION_SETUP = 'googlesitekit_setup';
const PERMISSION_VIEW_POSTS_INSIGHTS = 'googlesitekit_view_posts_insights';
const PERMISSION_VIEW_DASHBOARD = 'googlesitekit_view_dashboard';
const PERMISSION_VIEW_SHARED_DASHBOARD = 'googlesitekit_view_shared_dashboard';
const PERMISSION_VIEW_MODULE_DETAILS = 'googlesitekit_view_module_details';
const PERMISSION_MANAGE_OPTIONS = 'googlesitekit_manage_options';
const PERMISSION_READ_SHARED_MODULE_DATA = 'googlesitekit_read_shared_module_data';
const PERMISSION_MANAGE_MODULE_SHARING_OPTIONS = 'googlesitekit_manage_module_sharing_options';
const PERMISSION_DELEGATE_MODULE_SHARING_MANAGEMENT = 'googlesitekit_delegate_module_sharing_management';
const PERMISSION_UPDATE_PLUGINS = 'googlesitekit_update_plugins';

// Key Metrics Widgets
const KM_ANALYTICS_ADSENSE_TOP_EARNING_CONTENT = 'kmAnalyticsAdSenseTopEarningContent';
const KM_ANALYTICS_ENGAGED_TRAFFIC_SOURCE = 'kmAnalyticsEngagedTrafficSource';
const KM_ANALYTICS_LEAST_ENGAGING_PAGES = 'kmAnalyticsLeastEngagingPages';
const KM_ANALYTICS_NEW_VISITORS = 'kmAnalyticsNewVisitors';
const KM_ANALYTICS_POPULAR_AUTHORS = 'kmAnalyticsPopularAuthors';
const KM_ANALYTICS_POPULAR_CONTENT = 'kmAnalyticsPopularContent';
const KM_ANALYTICS_POPULAR_PRODUCTS = 'kmAnalyticsPopularProducts';
const KM_ANALYTICS_RETURNING_VISITORS = 'kmAnalyticsReturningVisitors';
const KM_ANALYTICS_TOP_CITIES = 'kmAnalyticsTopCities';
const KM_ANALYTICS_TOP_CITIES_DRIVING_LEADS = 'kmAnalyticsTopCitiesDrivingLeads';
const KM_ANALYTICS_TOP_CITIES_DRIVING_ADD_TO_CART = 'kmAnalyticsTopCitiesDrivingAddToCart';
const KM_ANALYTICS_TOP_CITIES_DRIVING_PURCHASES = 'kmAnalyticsTopCitiesDrivingPurchases';
const KM_ANALYTICS_TOP_DEVICE_DRIVING_PURCHASES = 'kmAnalyticsTopDeviceDrivingPurchases';
const KM_ANALYTICS_TOP_CONVERTING_TRAFFIC_SOURCE = 'kmAnalyticsTopConvertingTrafficSource';
const KM_ANALYTICS_TOP_COUNTRIES = 'kmAnalyticsTopCountries';
const KM_ANALYTICS_TOP_PAGES_DRIVING_LEADS = 'kmAnalyticsTopPagesDrivingLeads';
const KM_ANALYTICS_TOP_RECENT_TRENDING_PAGES = 'kmAnalyticsTopRecentTrendingPages';
const KM_ANALYTICS_TOP_TRAFFIC_SOURCE = 'kmAnalyticsTopTrafficSource';
const KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_ADD_TO_CART = 'kmAnalyticsTopTrafficSourceDrivingAddToCart';
const KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_LEADS = 'kmAnalyticsTopTrafficSourceDrivingLeads';
const KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_PURCHASES = 'kmAnalyticsTopTrafficSourceDrivingPurchases';
const KM_ANALYTICS_PAGES_PER_VISIT = 'kmAnalyticsPagesPerVisit';
const KM_ANALYTICS_VISIT_LENGTH = 'kmAnalyticsVisitLength';
const KM_ANALYTICS_TOP_RETURNING_VISITOR_PAGES = 'kmAnalyticsTopReturningVisitorPages';
const KM_SEARCH_CONSOLE_POPULAR_KEYWORDS = 'kmSearchConsolePopularKeywords';
const KM_ANALYTICS_VISITS_PER_VISITOR = 'kmAnalyticsVisitsPerVisitor';
const KM_ANALYTICS_MOST_ENGAGING_PAGES = 'kmAnalyticsMostEngagingPages';
const KM_ANALYTICS_TOP_CATEGORIES = 'kmAnalyticsTopCategories';
const keyMetricsGA4Widgets = [KM_ANALYTICS_ADSENSE_TOP_EARNING_CONTENT, KM_ANALYTICS_ENGAGED_TRAFFIC_SOURCE, KM_ANALYTICS_LEAST_ENGAGING_PAGES, KM_ANALYTICS_NEW_VISITORS, KM_ANALYTICS_POPULAR_AUTHORS, KM_ANALYTICS_POPULAR_CONTENT, KM_ANALYTICS_POPULAR_PRODUCTS, KM_ANALYTICS_RETURNING_VISITORS, KM_ANALYTICS_TOP_CATEGORIES, KM_ANALYTICS_TOP_CITIES, KM_ANALYTICS_TOP_CITIES_DRIVING_LEADS, KM_ANALYTICS_TOP_CITIES_DRIVING_ADD_TO_CART, KM_ANALYTICS_TOP_CITIES_DRIVING_PURCHASES, KM_ANALYTICS_TOP_DEVICE_DRIVING_PURCHASES, KM_ANALYTICS_TOP_CONVERTING_TRAFFIC_SOURCE, KM_ANALYTICS_TOP_COUNTRIES, KM_ANALYTICS_TOP_RECENT_TRENDING_PAGES, KM_ANALYTICS_TOP_TRAFFIC_SOURCE, KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_ADD_TO_CART, KM_ANALYTICS_PAGES_PER_VISIT, KM_ANALYTICS_VISIT_LENGTH, KM_ANALYTICS_TOP_RETURNING_VISITOR_PAGES, KM_ANALYTICS_VISITS_PER_VISITOR, KM_ANALYTICS_MOST_ENGAGING_PAGES, KM_ANALYTICS_TOP_CATEGORIES];
const allKeyMetricsTileWidgets = [...keyMetricsGA4Widgets, KM_SEARCH_CONSOLE_POPULAR_KEYWORDS];

/***/ }),

/***/ "./js/googlesitekit/modules/create-gathering-data-store.js":
/*!*****************************************************************!*\
  !*** ./js/googlesitekit/modules/create-gathering-data-store.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   createGatheringDataStore: () => (/* binding */ createGatheringDataStore)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-api */ "googlesitekit-api");
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_api__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/data/create-fetch-store */ "./js/googlesitekit/data/create-fetch-store.js");
/**
 * Factory function to create gathering data store.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* eslint-disable sitekit/jsdoc-no-unnamed-boolean-params */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */



const RECEIVE_GATHERING_DATA = 'RECEIVE_GATHERING_DATA';
const RECEIVE_DATA_AVAILABLE_ON_LOAD = 'RECEIVE_DATA_AVAILABLE_ON_LOAD';
const WAIT_FOR_DATA_AVAILABILITY_STATE = 'WAIT_FOR_DATA_AVAILABILITY_STATE';

/**
 * Creates a store object that includes actions and selectors for gathering data state for a module.
 *
 * @since 1.96.0
 * @private
 *
 * @param {string}   moduleSlug                  Slug of the module that the store is for.
 * @param {Object}   args                        Arguments to configure the store.
 * @param {string}   args.storeName              Store name to use.
 * @param {boolean}  args.dataAvailable          Data available on load.
 * @param {Function} args.selectDataAvailability Selector to determine data availability.
 *                                               This is a function that should return a boolean, or undefined while resolving.
 *                                               Since logic to determine data availability is different for every module,
 *                                               this selector must be provided by the module. If the data availability can
 *                                               not be determined, the selector should return null.
 * @return {Object} The gathering data store object.
 */
function createGatheringDataStore(moduleSlug, {
  storeName,
  dataAvailable = false,
  selectDataAvailability
} = {}) {
  invariant__WEBPACK_IMPORTED_MODULE_0___default()('string' === typeof moduleSlug && moduleSlug, 'module slug is required.');
  invariant__WEBPACK_IMPORTED_MODULE_0___default()('string' === typeof storeName && storeName, 'store name is required.');
  invariant__WEBPACK_IMPORTED_MODULE_0___default()('boolean' === typeof dataAvailable, 'dataAvailable must be a boolean.');
  invariant__WEBPACK_IMPORTED_MODULE_0___default()('function' === typeof selectDataAvailability, 'selectDataAvailability must be a function.');
  const fetchSaveDataAvailableStateStore = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_3__.createFetchStore)({
    baseName: 'saveDataAvailableState',
    controlCallback: () => (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_1__.set)('modules', moduleSlug, 'data-available')
  });
  const initialState = {
    dataAvailableOnLoad: dataAvailable,
    gatheringData: undefined
  };
  const actions = {
    /**
     * Receives gathering data state.
     *
     * @since 1.96.0
     * @private
     *
     * @param {boolean} gatheringData Gathering data.
     * @return {Object} Redux-style action.
     */
    receiveIsGatheringData(gatheringData) {
      invariant__WEBPACK_IMPORTED_MODULE_0___default()('boolean' === typeof gatheringData, 'gatheringData must be a boolean.');
      return {
        payload: {
          gatheringData
        },
        type: RECEIVE_GATHERING_DATA
      };
    },
    /**
     * Receives data available on load state.
     *
     * This action was added to easily manipulate the state for
     * JS tests and Storybook / VRT scenarios.
     *
     * @since 1.110.0
     * @private
     *
     * @param {boolean} dataAvailableOnLoad Gathering data.
     * @return {Object} Redux-style action.
     */
    receiveIsDataAvailableOnLoad(dataAvailableOnLoad) {
      invariant__WEBPACK_IMPORTED_MODULE_0___default()('boolean' === typeof dataAvailableOnLoad, 'dataAvailableOnLoad must be a boolean.');
      return {
        payload: {
          dataAvailableOnLoad
        },
        type: RECEIVE_DATA_AVAILABLE_ON_LOAD
      };
    }
  };
  const controls = {
    [WAIT_FOR_DATA_AVAILABILITY_STATE]: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.createRegistryControl)(registry => () => {
      function dataAvailabityDetermined() {
        return registry.select(storeName).selectDataAvailability() !== undefined;
      }
      if (dataAvailabityDetermined()) {
        return true;
      }
      return new Promise(resolve => {
        const unsubscribe = registry.subscribe(() => {
          if (dataAvailabityDetermined()) {
            unsubscribe();
            resolve(true);
          }
        });
      });
    })
  };
  const reducer = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.createReducer)((state = initialState, {
    type,
    payload
  }) => {
    switch (type) {
      case RECEIVE_GATHERING_DATA:
        state.gatheringData = payload.gatheringData;
        break;
      case RECEIVE_DATA_AVAILABLE_ON_LOAD:
        state.dataAvailableOnLoad = payload.dataAvailableOnLoad;
        break;
      default:
        break;
    }
  });
  const resolvers = {
    *isGatheringData() {
      const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.commonActions.getRegistry();

      // If the gatheringData flag is already set, return early.
      if (registry.select(storeName).isGatheringData() !== undefined) {
        return;
      }
      const dataAvailableOnLoad = registry.select(storeName).isDataAvailableOnLoad();

      // If dataAvailableOnLoad is true, set gatheringData to false and do nothing else.
      if (dataAvailableOnLoad) {
        yield actions.receiveIsGatheringData(false);
        return;
      }
      yield {
        payload: {},
        type: WAIT_FOR_DATA_AVAILABILITY_STATE
      };
      const dataAvailability = registry.select(storeName).selectDataAvailability();
      yield actions.receiveIsGatheringData(!dataAvailability);
      if (dataAvailability) {
        yield fetchSaveDataAvailableStateStore.actions.fetchSaveDataAvailableState();
      }
    }
  };
  const selectors = {
    /**
     * Determines whether data is available for the module.
     *
     * @since 1.96.0
     * @since 1.107.0 Returns null if the data availability can not be determined.
     *
     * @return {boolean|undefined|null} Returns TRUE if data is available, otherwise FALSE.
     *                                  If the request is still being resolved, returns undefined.
     *                                  If the data availability can not be determined, returns null.
     */
    selectDataAvailability,
    /**
     * Checks if data is available on load.
     *
     * @since 1.96.0
     *
     * @param {Object} state Data store's state.
     * @return {(string|null|undefined)} The existing tag `string` if present, `null` if not present, or `undefined` if not loaded yet.
     */
    isDataAvailableOnLoad(state) {
      return state.dataAvailableOnLoad;
    },
    /**
     * Determines whether the module is still gathering data or not.
     *
     * @todo Review the name of this selector to a less confusing one.
     * @since 1.96.0
     *
     * @param {Object} state Data store's state.
     * @return {boolean|undefined} Returns TRUE if gathering data, otherwise FALSE. If the request is still being resolved, returns undefined.
     */
    isGatheringData(state) {
      return state.gatheringData;
    }
  };
  return (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.combineStores)(fetchSaveDataAvailableStateStore, {
    actions,
    controls,
    initialState,
    reducer,
    resolvers,
    selectors
  });
}

/***/ }),

/***/ "./js/googlesitekit/modules/datastore/constants.js":
/*!*********************************************************!*\
  !*** ./js/googlesitekit/modules/datastore/constants.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   CORE_MODULES: () => (/* binding */ CORE_MODULES),
/* harmony export */   ERROR_CODE_INSUFFICIENT_MODULE_DEPENDENCIES: () => (/* binding */ ERROR_CODE_INSUFFICIENT_MODULE_DEPENDENCIES)
/* harmony export */ });
/**
 * `core/modules` data store: constants.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const CORE_MODULES = 'core/modules';
const ERROR_CODE_INSUFFICIENT_MODULE_DEPENDENCIES = 'insufficient_module_dependencies';

/***/ }),

/***/ "./js/googlesitekit/notifications/components/common/LearnMoreLink.js":
/*!***************************************************************************!*\
  !*** ./js/googlesitekit/notifications/components/common/LearnMoreLink.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ LearnMoreLink)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_googlesitekit_notifications_hooks_useNotificationEvents__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/notifications/hooks/useNotificationEvents */ "./js/googlesitekit/notifications/hooks/useNotificationEvents.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */



function LearnMoreLink({
  id,
  label,
  url,
  ariaLabel,
  gaTrackingEventArgs,
  external = true,
  ...otherProps
}) {
  const trackEvents = (0,_js_googlesitekit_notifications_hooks_useNotificationEvents__WEBPACK_IMPORTED_MODULE_1__["default"])(id);
  function handleLearnMore(event) {
    event.persist();
    trackEvents.clickLearnMore(gaTrackingEventArgs?.label, gaTrackingEventArgs?.value);
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_0__["default"], {
    onClick: handleLearnMore,
    href: url,
    "aria-label": ariaLabel,
    external: external,
    ...otherProps,
    children: label
  });
}
LearnMoreLink.propTypes = {
  id: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  label: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  url: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  ariaLabel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  gaTrackingEventArgs: prop_types__WEBPACK_IMPORTED_MODULE_3___default().shape({
    label: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
    value: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string)
  }),
  external: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool)
};

/***/ }),

/***/ "./js/googlesitekit/notifications/components/layout/BannerNotification.js":
/*!********************************************************************************!*\
  !*** ./js/googlesitekit/notifications/components/layout/BannerNotification.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   TYPES: () => (/* binding */ TYPES),
/* harmony export */   "default": () => (/* binding */ BannerNotification)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_12__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_notifications_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/notifications/datastore/constants */ "./js/googlesitekit/notifications/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_notifications_hooks_useNotificationEvents__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/notifications/hooks/useNotificationEvents */ "./js/googlesitekit/notifications/hooks/useNotificationEvents.js");
/* harmony import */ var _js_components_Banner__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/Banner */ "./js/components/Banner/index.js");
/* harmony import */ var _js_components_Banner_LearnMoreLink__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/Banner/LearnMoreLink */ "./js/components/Banner/LearnMoreLink.tsx");
/* harmony import */ var _js_components_Banner_CTAButton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/Banner/CTAButton */ "./js/components/Banner/CTAButton.js");
/* harmony import */ var _js_components_Banner_DismissButton__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/components/Banner/DismissButton */ "./js/components/Banner/DismissButton.js");
/* harmony import */ var _js_material_components__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/material-components */ "./js/material-components/index.js");
/* harmony import */ var _svg_graphics_banner_warning_svg_url__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/svg/graphics/banner-warning.svg?url */ "./svg/graphics/banner-warning.svg?url");
/* harmony import */ var _svg_graphics_banner_error_svg_url__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/svg/graphics/banner-error.svg?url */ "./svg/graphics/banner-error.svg?url");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * BannerNotification layout component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Internal dependencies
 */











const TYPES = {
  INFO: 'info',
  ERROR: 'error',
  WARNING: 'warning'
};
function BannerNotification({
  notificationID,
  type = TYPES.INFO,
  learnMoreLink,
  dismissButton,
  ctaButton,
  gaTrackingEventArgs,
  ...props
}) {
  const trackEvents = (0,_js_googlesitekit_notifications_hooks_useNotificationEvents__WEBPACK_IMPORTED_MODULE_3__["default"])(notificationID, gaTrackingEventArgs?.category);
  const {
    dismissNotification
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_notifications_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_NOTIFICATIONS);
  async function handleDismissWithTrackEvent(event) {
    await dismissButton?.onClick?.(event);
    trackEvents.dismiss(gaTrackingEventArgs?.label, gaTrackingEventArgs?.value);
    dismissNotification(notificationID, {
      ...dismissButton?.dismissOptions
    });
  }
  async function handleCTAClickWithTrackEvent(event) {
    trackEvents.confirm(gaTrackingEventArgs?.label, gaTrackingEventArgs?.value);
    await ctaButton?.onClick?.(event);
    if (ctaButton?.dismissOnClick) {
      dismissNotification(notificationID, {
        ...ctaButton?.dismissOptions
      });
    }
  }
  async function handleLearnMoreClickWithTrackEvent(event) {
    trackEvents.clickLearnMore(gaTrackingEventArgs?.label, gaTrackingEventArgs?.value);
    await learnMoreLink?.onClick?.(event);
  }
  let SVGData = props?.svg;
  if (!SVGData && type !== TYPES.INFO) {
    SVGData = {
      desktop: undefined,
      mobile: undefined,
      verticalPosition: 'center'
    };
    if (type === TYPES.WARNING) {
      SVGData.desktop = _svg_graphics_banner_warning_svg_url__WEBPACK_IMPORTED_MODULE_9__["default"];
    }
    if (type === TYPES.ERROR) {
      SVGData.desktop = _svg_graphics_banner_error_svg_url__WEBPACK_IMPORTED_MODULE_10__["default"];
    }
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("div", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-banner-notification', `googlesitekit-banner-notification--${type}`),
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_material_components__WEBPACK_IMPORTED_MODULE_8__.Grid, {
      className: "googlesitekit-page-content",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_material_components__WEBPACK_IMPORTED_MODULE_8__.Row, {
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_material_components__WEBPACK_IMPORTED_MODULE_8__.Cell, {
          size: 12,
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_Banner__WEBPACK_IMPORTED_MODULE_4__["default"], {
            learnMoreLink: learnMoreLink && {
              ...learnMoreLink,
              onClick: handleLearnMoreClickWithTrackEvent
            },
            dismissButton: dismissButton && {
              ...dismissButton,
              onClick: handleDismissWithTrackEvent
            },
            ctaButton: ctaButton && {
              ...ctaButton,
              onClick: handleCTAClickWithTrackEvent
            },
            svg: SVGData,
            ...props
          })
        })
      })
    })
  });
}
BannerNotification.propTypes = {
  notificationID: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().string).isRequired,
  type: prop_types__WEBPACK_IMPORTED_MODULE_12___default().oneOf(Object.values(TYPES)),
  titleIcon: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().node),
  title: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().string),
  description: prop_types__WEBPACK_IMPORTED_MODULE_12___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_12___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_12___default().node)]),
  learnMoreLink: prop_types__WEBPACK_IMPORTED_MODULE_12___default().shape(_js_components_Banner_LearnMoreLink__WEBPACK_IMPORTED_MODULE_5__["default"].propTypes),
  dismissButton: prop_types__WEBPACK_IMPORTED_MODULE_12___default().shape(_js_components_Banner_DismissButton__WEBPACK_IMPORTED_MODULE_7__["default"].propTypes),
  ctaButton: prop_types__WEBPACK_IMPORTED_MODULE_12___default().shape(_js_components_Banner_CTAButton__WEBPACK_IMPORTED_MODULE_6__["default"].propTypes),
  gaTrackingEventArgs: prop_types__WEBPACK_IMPORTED_MODULE_12___default().shape({
    category: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().string),
    label: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().string),
    value: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().number)
  })
};

/***/ }),

/***/ "./js/googlesitekit/notifications/components/layout/NoticeNotification.js":
/*!********************************************************************************!*\
  !*** ./js/googlesitekit/notifications/components/layout/NoticeNotification.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ NoticeNotification)
/* harmony export */ });
/* harmony import */ var _js_components_Notice__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/components/Notice */ "./js/components/Notice/index.js");
/* harmony import */ var _js_googlesitekit_notifications_hooks_useNotificationEvents__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/notifications/hooks/useNotificationEvents */ "./js/googlesitekit/notifications/hooks/useNotificationEvents.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_googlesitekit_notifications_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/notifications/datastore/constants */ "./js/googlesitekit/notifications/datastore/constants.js");
/* harmony import */ var _js_material_components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/material-components */ "./js/material-components/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */







function NoticeNotification({
  notificationID,
  children,
  dismissButton,
  ctaButton,
  gaTrackingEventArgs,
  ...props
}) {
  const trackEvents = (0,_js_googlesitekit_notifications_hooks_useNotificationEvents__WEBPACK_IMPORTED_MODULE_1__["default"])(notificationID);
  const {
    dismissNotification
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(_js_googlesitekit_notifications_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_NOTIFICATIONS);
  async function handleDismissWithTrackEvent(event) {
    await dismissButton?.onClick?.(event);
    trackEvents.dismiss(gaTrackingEventArgs?.label, gaTrackingEventArgs?.value);
    dismissNotification(notificationID, {
      ...(dismissButton?.dismissOptions || {})
    });
  }
  async function handleCTAClickWithTrackEvent(event) {
    trackEvents.confirm(gaTrackingEventArgs?.label, gaTrackingEventArgs?.value);
    await ctaButton?.onClick?.(event);
    if (ctaButton?.dismissOnClick) {
      dismissNotification(notificationID, {
        ...ctaButton?.dismissOptions
      });
    }
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_material_components__WEBPACK_IMPORTED_MODULE_4__.Grid, {
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_material_components__WEBPACK_IMPORTED_MODULE_4__.Row, {
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_material_components__WEBPACK_IMPORTED_MODULE_4__.Cell, {
        size: 12,
        alignMiddle: true,
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_Notice__WEBPACK_IMPORTED_MODULE_0__["default"], {
          dismissButton: {
            ...dismissButton,
            onClick: handleDismissWithTrackEvent
          },
          ctaButton: {
            ...ctaButton,
            onClick: handleCTAClickWithTrackEvent
          },
          ...props,
          children: children
        })
      })
    })
  });
}
NoticeNotification.propTypes = {
  notificationID: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().string).isRequired,
  children: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().node),
  dismissButton: prop_types__WEBPACK_IMPORTED_MODULE_6___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_6___default().bool), (prop_types__WEBPACK_IMPORTED_MODULE_6___default().object)]),
  ctaButton: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().object),
  gaTrackingEventArgs: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().object)
};

/***/ }),

/***/ "./js/googlesitekit/notifications/components/layout/OverlayNotification.js":
/*!*********************************************************************************!*\
  !*** ./js/googlesitekit/notifications/components/layout/OverlayNotification.js ***!
  \*********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ OverlayNotification)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_notifications_datastore_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/notifications/datastore/constants */ "./js/googlesitekit/notifications/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_notifications_hooks_useNotificationEvents__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/notifications/hooks/useNotificationEvents */ "./js/googlesitekit/notifications/hooks/useNotificationEvents.js");
/* harmony import */ var _js_components_OverlayCard__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/components/OverlayCard */ "./js/components/OverlayCard/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * OverlayNotification layout component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */





function OverlayNotification({
  notificationID,
  ctaButton,
  dismissButton,
  gaTrackingEventArgs,
  ...props
}) {
  const trackEvents = (0,_js_googlesitekit_notifications_hooks_useNotificationEvents__WEBPACK_IMPORTED_MODULE_2__["default"])(notificationID, gaTrackingEventArgs?.category, {
    confirmAction: gaTrackingEventArgs?.confirmAction,
    dismissAction: gaTrackingEventArgs?.dismissAction
  });
  const {
    dismissNotification
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_googlesitekit_notifications_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_NOTIFICATIONS);
  async function handleDismissWithTrackEvent(event) {
    await dismissButton?.onClick?.(event);
    trackEvents.dismiss(gaTrackingEventArgs?.label, gaTrackingEventArgs?.value);
    dismissNotification(notificationID, {
      ...dismissButton.dismissOptions
    });
  }
  const {
    dismissOnClick,
    dismissOptions,
    ...otherCTAProps
  } = ctaButton || {};
  async function handleCTAClickWithTrackEvent(event) {
    trackEvents.confirm(gaTrackingEventArgs?.label, gaTrackingEventArgs?.value);
    await ctaButton?.onClick?.(event);
    if (dismissOnClick) {
      dismissNotification(notificationID, {
        ...dismissOptions
      });
    }
  }
  const overlayCTAButton = ctaButton ? {
    ...otherCTAProps,
    onClick: handleCTAClickWithTrackEvent
  } : undefined;
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_js_components_OverlayCard__WEBPACK_IMPORTED_MODULE_3__["default"], {
    ctaButton: overlayCTAButton,
    dismissButton: {
      ...dismissButton,
      onClick: handleDismissWithTrackEvent
    },
    ...props,
    visible: true
  });
}
OverlayNotification.propTypes = {
  notificationID: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string),
  ctaButton: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().object),
  dismissButton: prop_types__WEBPACK_IMPORTED_MODULE_5___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_5___default().object), (prop_types__WEBPACK_IMPORTED_MODULE_5___default().bool)])
};

/***/ }),

/***/ "./js/googlesitekit/notifications/components/layout/SetupCTA.js":
/*!**********************************************************************!*\
  !*** ./js/googlesitekit/notifications/components/layout/SetupCTA.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SetupCTA)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_12__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_notifications_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/notifications/datastore/constants */ "./js/googlesitekit/notifications/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_notifications_hooks_useNotificationEvents__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/notifications/hooks/useNotificationEvents */ "./js/googlesitekit/notifications/hooks/useNotificationEvents.js");
/* harmony import */ var _js_components_Banner__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/Banner */ "./js/components/Banner/index.js");
/* harmony import */ var _js_components_Banner_LearnMoreLink__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/Banner/LearnMoreLink */ "./js/components/Banner/LearnMoreLink.tsx");
/* harmony import */ var _js_components_Banner_CTAButton__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/Banner/CTAButton */ "./js/components/Banner/CTAButton.js");
/* harmony import */ var _js_components_Banner_DismissButton__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/components/Banner/DismissButton */ "./js/components/Banner/DismissButton.js");
/* harmony import */ var _js_material_components__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/material-components */ "./js/material-components/index.js");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * SetupCTA layout component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */










function SetupCTA({
  notificationID,
  title,
  description,
  errorText,
  helpText,
  learnMoreLink,
  dismissButton,
  ctaButton,
  svg,
  footer,
  gaTrackingEventArgs,
  waitingProgress,
  ...props
}) {
  const trackEvents = (0,_js_googlesitekit_notifications_hooks_useNotificationEvents__WEBPACK_IMPORTED_MODULE_3__["default"])(notificationID, gaTrackingEventArgs?.category);
  const {
    dismissNotification
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_notifications_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_NOTIFICATIONS);
  async function handleDismissWithTrackEvent(event) {
    await dismissButton?.onClick?.(event);
    trackEvents.dismiss(gaTrackingEventArgs?.label, gaTrackingEventArgs?.value);
    dismissNotification(notificationID, {
      ...dismissButton?.dismissOptions
    });
  }
  async function handleCTAClickWithTrackEvent(event) {
    trackEvents.confirm(gaTrackingEventArgs?.label, gaTrackingEventArgs?.value);
    await ctaButton?.onClick?.(event);
    if (ctaButton?.dismissOnClick) {
      dismissNotification(notificationID, {
        ...ctaButton?.dismissOptions
      });
    }
  }
  async function handleLearnMoreClickWithTrackEvent(event) {
    trackEvents.clickLearnMore(gaTrackingEventArgs?.label, gaTrackingEventArgs?.value);
    await learnMoreLink?.onClick?.(event);
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_11__.Fragment, {
    children: [!!waitingProgress && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_9__.ProgressBar, {
      className: "googlesitekit-banner__progress-bar",
      ...waitingProgress
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", {
      className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-widget-context', {
        'googlesitekit-widget-context--with-progress-bar': !!waitingProgress
      }),
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_material_components__WEBPACK_IMPORTED_MODULE_8__.Grid, {
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_material_components__WEBPACK_IMPORTED_MODULE_8__.Row, {
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_material_components__WEBPACK_IMPORTED_MODULE_8__.Cell, {
            size: 12,
            children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_components_Banner__WEBPACK_IMPORTED_MODULE_4__["default"], {
              className: "googlesitekit-banner--setup-cta",
              title: title,
              description: description,
              errorText: errorText,
              helpText: helpText,
              learnMoreLink: learnMoreLink && {
                ...learnMoreLink,
                onClick: handleLearnMoreClickWithTrackEvent
              },
              dismissButton: dismissButton && {
                ...dismissButton,
                onClick: handleDismissWithTrackEvent
              },
              ctaButton: ctaButton && {
                ...ctaButton,
                onClick: handleCTAClickWithTrackEvent
              },
              svg: svg,
              footer: footer,
              ...props
            })
          })
        })
      })
    })]
  });
}
SetupCTA.propTypes = {
  notificationID: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().string),
  title: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().string),
  description: prop_types__WEBPACK_IMPORTED_MODULE_12___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_12___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_12___default().node)]),
  errorText: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().string),
  helpText: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().string),
  learnMoreLink: prop_types__WEBPACK_IMPORTED_MODULE_12___default().shape(_js_components_Banner_LearnMoreLink__WEBPACK_IMPORTED_MODULE_5__["default"].propTypes),
  dismissButton: prop_types__WEBPACK_IMPORTED_MODULE_12___default().shape(_js_components_Banner_DismissButton__WEBPACK_IMPORTED_MODULE_7__["default"].propTypes),
  ctaButton: prop_types__WEBPACK_IMPORTED_MODULE_12___default().shape(_js_components_Banner_CTAButton__WEBPACK_IMPORTED_MODULE_6__["default"].propTypes),
  svg: prop_types__WEBPACK_IMPORTED_MODULE_12___default().shape({
    desktop: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().elementType),
    mobile: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().elementType),
    verticalPosition: prop_types__WEBPACK_IMPORTED_MODULE_12___default().oneOf(['top', 'center', 'bottom'])
  }),
  footer: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().node),
  gaTrackingEventArgs: prop_types__WEBPACK_IMPORTED_MODULE_12___default().shape({
    category: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().string),
    label: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().string),
    value: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().number)
  }),
  waitingProgress: prop_types__WEBPACK_IMPORTED_MODULE_12___default().shape(googlesitekit_components__WEBPACK_IMPORTED_MODULE_9__.ProgressBar.propTypes)
};

/***/ }),

/***/ "./js/googlesitekit/notifications/constants.js":
/*!*****************************************************!*\
  !*** ./js/googlesitekit/notifications/constants.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   GTG_HEALTH_CHECK_WARNING_NOTIFICATION_ID: () => (/* binding */ GTG_HEALTH_CHECK_WARNING_NOTIFICATION_ID),
/* harmony export */   GTG_SETUP_CTA_BANNER_NOTIFICATION: () => (/* binding */ GTG_SETUP_CTA_BANNER_NOTIFICATION),
/* harmony export */   NOTIFICATION_AREAS: () => (/* binding */ NOTIFICATION_AREAS),
/* harmony export */   NOTIFICATION_GROUPS: () => (/* binding */ NOTIFICATION_GROUPS),
/* harmony export */   PRIORITY: () => (/* binding */ PRIORITY)
/* harmony export */ });
/**
 * Notifications API constants.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const GTG_HEALTH_CHECK_WARNING_NOTIFICATION_ID = 'warning-notification-gtg';
const GTG_SETUP_CTA_BANNER_NOTIFICATION = 'gtg-setup-cta';
const PRIORITY = {
  ERROR_HIGH: 30,
  ERROR_LOW: 60,
  WARNING: 100,
  INFO: 150,
  SETUP_CTA_HIGH: 150,
  SETUP_CTA_LOW: 200
};
const NOTIFICATION_AREAS = {
  HEADER: 'notification-area-header',
  DASHBOARD_TOP: 'notification-area-dashboard-top',
  OVERLAYS: 'notification-area-overlays'
};
const NOTIFICATION_GROUPS = {
  DEFAULT: 'default',
  SETUP_CTAS: 'setup-ctas'
};

/***/ }),

/***/ "./js/googlesitekit/notifications/datastore/constants.js":
/*!***************************************************************!*\
  !*** ./js/googlesitekit/notifications/datastore/constants.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   CORE_NOTIFICATIONS: () => (/* binding */ CORE_NOTIFICATIONS),
/* harmony export */   NOTIFICATION_VIEW_CONTEXTS: () => (/* binding */ NOTIFICATION_VIEW_CONTEXTS)
/* harmony export */ });
/* harmony import */ var _js_googlesitekit_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/googlesitekit/constants */ "./js/googlesitekit/constants.js");
/**
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


const CORE_NOTIFICATIONS = 'core/notifications';
const NOTIFICATION_VIEW_CONTEXTS = [_js_googlesitekit_constants__WEBPACK_IMPORTED_MODULE_0__.VIEW_CONTEXT_SPLASH, _js_googlesitekit_constants__WEBPACK_IMPORTED_MODULE_0__.VIEW_CONTEXT_MAIN_DASHBOARD, _js_googlesitekit_constants__WEBPACK_IMPORTED_MODULE_0__.VIEW_CONTEXT_ENTITY_DASHBOARD, _js_googlesitekit_constants__WEBPACK_IMPORTED_MODULE_0__.VIEW_CONTEXT_MAIN_DASHBOARD_VIEW_ONLY, _js_googlesitekit_constants__WEBPACK_IMPORTED_MODULE_0__.VIEW_CONTEXT_ENTITY_DASHBOARD_VIEW_ONLY];

/***/ }),

/***/ "./js/googlesitekit/notifications/hooks/useNotificationEvents.js":
/*!***********************************************************************!*\
  !*** ./js/googlesitekit/notifications/hooks/useNotificationEvents.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ useNotificationEvents)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/**
 * `useNotificationEvents` hook.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


function useNotificationEvents(id, category, {
  viewAction = 'view_notification',
  confirmAction = 'confirm_notification',
  dismissAction = 'dismiss_notification',
  clickLearnMoreAction = 'click_learn_more_link'
} = {}) {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_0__["default"])();
  const eventCategory = category !== null && category !== void 0 ? category : `${viewContext}_${id}`;
  const view = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useCallback)((...args) => {
    return (0,_js_util__WEBPACK_IMPORTED_MODULE_1__.trackEvent)(eventCategory, viewAction, ...args);
  }, [eventCategory, viewAction]);
  const confirm = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useCallback)((...args) => {
    return (0,_js_util__WEBPACK_IMPORTED_MODULE_1__.trackEvent)(eventCategory, confirmAction, ...args);
  }, [eventCategory, confirmAction]);
  const dismiss = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useCallback)((...args) => {
    return (0,_js_util__WEBPACK_IMPORTED_MODULE_1__.trackEvent)(eventCategory, dismissAction, ...args);
  }, [eventCategory, dismissAction]);
  const clickLearnMore = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useCallback)((...args) => {
    return (0,_js_util__WEBPACK_IMPORTED_MODULE_1__.trackEvent)(eventCategory, clickLearnMoreAction, ...args);
  }, [eventCategory, clickLearnMoreAction]);
  return {
    view,
    confirm,
    dismiss,
    clickLearnMore
  };
}

/***/ }),

/***/ "./js/googlesitekit/widgets/components/WPDashboardReportError.js":
/*!***********************************************************************!*\
  !*** ./js/googlesitekit/widgets/components/WPDashboardReportError.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ WPDashboardReportError)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useLifecycles.js");
/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/compose */ "../node_modules/@wordpress/compose/build-module/hooks/use-instance-id/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_components_ReportError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/ReportError */ "./js/components/ReportError.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * WPDashboardReportError component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */




function WPDashboardReportError({
  moduleSlug,
  error
}) {
  const errorInstanceID = (0,_wordpress_compose__WEBPACK_IMPORTED_MODULE_4__["default"])(WPDashboardReportError, 'WPDashboardReportError');
  const {
    setValue
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_UI);
  const errorMessage = error.message;
  const selectInstanceID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_UI).getValue(`WPDashboardReportError-${moduleSlug}-${errorMessage}`));
  (0,react_use__WEBPACK_IMPORTED_MODULE_5__["default"])(() => {
    setValue(`WPDashboardReportError-${moduleSlug}-${errorMessage}`, errorInstanceID);
  }, () => {
    setValue(`WPDashboardReportError-${moduleSlug}-${errorMessage}`, undefined);
  });
  if (selectInstanceID !== errorInstanceID) {
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_js_components_ReportError__WEBPACK_IMPORTED_MODULE_2__["default"], {
    moduleSlug: moduleSlug,
    error: error
  });
}
WPDashboardReportError.propTypes = {
  moduleSlug: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().string).isRequired,
  error: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().object).isRequired
};

/***/ }),

/***/ "./js/googlesitekit/widgets/components/Widget.js":
/*!*******************************************************!*\
  !*** ./js/googlesitekit/widgets/components/Widget.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Widget component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


const Widget = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.forwardRef)(({
  children,
  className,
  widgetSlug,
  noPadding,
  Header,
  Footer
}, ref) => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-widget', `googlesitekit-widget--${widgetSlug}`, {
      'googlesitekit-widget--no-padding': noPadding
    }, {
      'googlesitekit-widget--with-header': Header
    }, className),
    ref: ref,
    children: [Header && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
      className: "googlesitekit-widget__header",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Header, {})
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
      className: "googlesitekit-widget__body",
      children: children
    }), Footer && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
      className: "googlesitekit-widget__footer",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Footer, {})
    })]
  });
});
Widget.defaultProps = {
  children: undefined,
  noPadding: false
};
Widget.propTypes = {
  children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),
  widgetSlug: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,
  noPadding: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),
  Header: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().elementType),
  Footer: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().elementType)
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Widget);

/***/ }),

/***/ "./js/googlesitekit/widgets/components/WidgetContext.tsx":
/*!***************************************************************!*\
  !*** ./js/googlesitekit/widgets/components/WidgetContext.tsx ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Consumer: () => (/* binding */ Consumer),
/* harmony export */   Provider: () => (/* binding */ Provider),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/**
 * Context for widgets.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */

/**
 * Widget context value interface.
 *
 * @since n.e.x.t
 */

const WidgetContext = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createContext)({});
const {
  Consumer,
  Provider
} = WidgetContext;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (WidgetContext);

/***/ }),

/***/ "./js/googlesitekit/widgets/components/WidgetHeaderTitle.js":
/*!******************************************************************!*\
  !*** ./js/googlesitekit/widgets/components/WidgetHeaderTitle.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_components_Typography__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/components/Typography */ "./js/components/Typography/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * WidgetHeaderTitle component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



function WidgetHeaderTitle({
  title
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_0__["default"], {
    className: "googlesitekit-widget__header-title",
    as: "h3",
    type: "title",
    size: "small",
    children: title
  });
}
WidgetHeaderTitle.propTypes = {
  title: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (WidgetHeaderTitle);

/***/ }),

/***/ "./js/googlesitekit/widgets/components/WidgetNull.js":
/*!***********************************************************!*\
  !*** ./js/googlesitekit/widgets/components/WidgetNull.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ WidgetNull)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _js_googlesitekit_widgets_hooks_useWidgetStateEffect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/googlesitekit/widgets/hooks/useWidgetStateEffect */ "./js/googlesitekit/widgets/hooks/useWidgetStateEffect.js");
/* harmony import */ var _js_components_Null__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/Null */ "./js/components/Null.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * WidgetNull component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */



// This doesn't need to change.

const metadata = {};

// The supported props must match `Null` (except `widgetSlug`).
function WidgetNull({
  widgetSlug
}) {
  (0,_js_googlesitekit_widgets_hooks_useWidgetStateEffect__WEBPACK_IMPORTED_MODULE_0__["default"])(widgetSlug, _js_components_Null__WEBPACK_IMPORTED_MODULE_1__["default"], metadata);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_js_components_Null__WEBPACK_IMPORTED_MODULE_1__["default"], {});
}
WidgetNull.propTypes = {
  widgetSlug: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,
  ..._js_components_Null__WEBPACK_IMPORTED_MODULE_1__["default"].propTypes
};

/***/ }),

/***/ "./js/googlesitekit/widgets/components/WidgetRecoverableModules.js":
/*!*************************************************************************!*\
  !*** ./js/googlesitekit/widgets/components/WidgetRecoverableModules.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ WidgetRecoverableModules)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _js_googlesitekit_widgets_hooks_useWidgetStateEffect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/googlesitekit/widgets/hooks/useWidgetStateEffect */ "./js/googlesitekit/widgets/hooks/useWidgetStateEffect.js");
/* harmony import */ var _js_components_RecoverableModules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/RecoverableModules */ "./js/components/RecoverableModules.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * WidgetRecoverableModules component.
 *
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



// The supported props must match `RecoverableModules` (except `widgetSlug`).

function WidgetRecoverableModules({
  widgetSlug,
  moduleSlugs,
  ...props
}) {
  const metadata = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useMemo)(() => ({
    // Here we serialize to `moduleSlug` for compatibility with the logic in
    // `combineWidgets()`. In future we may wish to take a less "hacky" approach.
    // See https://github.com/google/site-kit-wp/issues/5376#issuecomment-1165771399.
    moduleSlug: [...moduleSlugs].sort().join(','),
    // We also store `moduleSlugs` in the metadata in order for it to be passed back
    // into RecoverableModules as a prop.
    // See https://github.com/google/site-kit-wp/blob/c272c20eddcca61aae24c9812b6b11dbc15ec673/assets/js/googlesitekit/widgets/components/WidgetAreaRenderer.js#L171.
    moduleSlugs
  }), [moduleSlugs]);
  (0,_js_googlesitekit_widgets_hooks_useWidgetStateEffect__WEBPACK_IMPORTED_MODULE_0__["default"])(widgetSlug, _js_components_RecoverableModules__WEBPACK_IMPORTED_MODULE_1__["default"], metadata);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_js_components_RecoverableModules__WEBPACK_IMPORTED_MODULE_1__["default"], {
    moduleSlugs: moduleSlugs,
    ...props
  });
}
WidgetRecoverableModules.propTypes = {
  widgetSlug: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,
  ..._js_components_RecoverableModules__WEBPACK_IMPORTED_MODULE_1__["default"].propTypes
};

/***/ }),

/***/ "./js/googlesitekit/widgets/components/WidgetReportError.js":
/*!******************************************************************!*\
  !*** ./js/googlesitekit/widgets/components/WidgetReportError.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ WidgetReportError)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_components_ReportError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/components/ReportError */ "./js/components/ReportError.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * WidgetReportError component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */


// eslint-disable-next-line no-unused-vars

function WidgetReportError({
  widgetSlug,
  ...props
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_js_components_ReportError__WEBPACK_IMPORTED_MODULE_0__["default"], {
    ...props
  });
}
WidgetReportError.propTypes = {
  widgetSlug: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,
  ..._js_components_ReportError__WEBPACK_IMPORTED_MODULE_0__["default"].propTypes
};

/***/ }),

/***/ "./js/googlesitekit/widgets/components/WidgetReportZero.js":
/*!*****************************************************************!*\
  !*** ./js/googlesitekit/widgets/components/WidgetReportZero.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ WidgetReportZero)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _js_googlesitekit_widgets_hooks_useWidgetStateEffect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/googlesitekit/widgets/hooks/useWidgetStateEffect */ "./js/googlesitekit/widgets/hooks/useWidgetStateEffect.js");
/* harmony import */ var _js_components_ReportZero__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/ReportZero */ "./js/components/ReportZero.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * WidgetReportZero component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



// The supported props must match `ReportZero` (except `widgetSlug`).

function WidgetReportZero({
  widgetSlug,
  moduleSlug,
  ...props
}) {
  const metadata = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.useMemo)(() => ({
    moduleSlug
  }), [moduleSlug]);
  (0,_js_googlesitekit_widgets_hooks_useWidgetStateEffect__WEBPACK_IMPORTED_MODULE_0__["default"])(widgetSlug, _js_components_ReportZero__WEBPACK_IMPORTED_MODULE_1__["default"], metadata);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_js_components_ReportZero__WEBPACK_IMPORTED_MODULE_1__["default"], {
    moduleSlug: moduleSlug,
    ...props
  });
}
WidgetReportZero.propTypes = {
  widgetSlug: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired,
  ..._js_components_ReportZero__WEBPACK_IMPORTED_MODULE_1__["default"].propTypes
};

/***/ }),

/***/ "./js/googlesitekit/widgets/datastore/constants.js":
/*!*********************************************************!*\
  !*** ./js/googlesitekit/widgets/datastore/constants.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   CORE_WIDGETS: () => (/* binding */ CORE_WIDGETS),
/* harmony export */   WIDGET_AREA_STYLES: () => (/* binding */ WIDGET_AREA_STYLES),
/* harmony export */   WIDGET_WIDTHS: () => (/* binding */ WIDGET_WIDTHS)
/* harmony export */ });
/**
 * `core/widgets` data store: constants.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const WIDGET_AREA_STYLES = {
  BOXES: 'boxes',
  COMPOSITE: 'composite'
};
const WIDGET_WIDTHS = {
  QUARTER: 'quarter',
  HALF: 'half',
  FULL: 'full'
};
const CORE_WIDGETS = 'core/widgets';

/***/ }),

/***/ "./js/googlesitekit/widgets/default-areas.js":
/*!***************************************************!*\
  !*** ./js/googlesitekit/widgets/default-areas.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   AREA_ENTITY_DASHBOARD_CONTENT_PRIMARY: () => (/* binding */ AREA_ENTITY_DASHBOARD_CONTENT_PRIMARY),
/* harmony export */   AREA_ENTITY_DASHBOARD_MONETIZATION_PRIMARY: () => (/* binding */ AREA_ENTITY_DASHBOARD_MONETIZATION_PRIMARY),
/* harmony export */   AREA_ENTITY_DASHBOARD_SPEED_PRIMARY: () => (/* binding */ AREA_ENTITY_DASHBOARD_SPEED_PRIMARY),
/* harmony export */   AREA_ENTITY_DASHBOARD_TRAFFIC_PRIMARY: () => (/* binding */ AREA_ENTITY_DASHBOARD_TRAFFIC_PRIMARY),
/* harmony export */   AREA_MAIN_DASHBOARD_CONTENT_PRIMARY: () => (/* binding */ AREA_MAIN_DASHBOARD_CONTENT_PRIMARY),
/* harmony export */   AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY: () => (/* binding */ AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY),
/* harmony export */   AREA_MAIN_DASHBOARD_MONETIZATION_PRIMARY: () => (/* binding */ AREA_MAIN_DASHBOARD_MONETIZATION_PRIMARY),
/* harmony export */   AREA_MAIN_DASHBOARD_SPEED_PRIMARY: () => (/* binding */ AREA_MAIN_DASHBOARD_SPEED_PRIMARY),
/* harmony export */   AREA_MAIN_DASHBOARD_TRAFFIC_AUDIENCE_SEGMENTATION: () => (/* binding */ AREA_MAIN_DASHBOARD_TRAFFIC_AUDIENCE_SEGMENTATION),
/* harmony export */   AREA_MAIN_DASHBOARD_TRAFFIC_PRIMARY: () => (/* binding */ AREA_MAIN_DASHBOARD_TRAFFIC_PRIMARY),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/**
 * Widgets API default areas
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Main dashboard
const AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY = 'mainDashboardKeyMetricsPrimary';
const AREA_MAIN_DASHBOARD_TRAFFIC_PRIMARY = 'mainDashboardTrafficPrimary';
const AREA_MAIN_DASHBOARD_TRAFFIC_AUDIENCE_SEGMENTATION = 'mainDashboardTrafficAudienceSegmentation';
const AREA_MAIN_DASHBOARD_CONTENT_PRIMARY = 'mainDashboardContentPrimary';
const AREA_MAIN_DASHBOARD_SPEED_PRIMARY = 'mainDashboardSpeedPrimary';
const AREA_MAIN_DASHBOARD_MONETIZATION_PRIMARY = 'mainDashboardMonetizationPrimary';
// Entity dashboard
const AREA_ENTITY_DASHBOARD_TRAFFIC_PRIMARY = 'entityDashboardTrafficPrimary';
const AREA_ENTITY_DASHBOARD_CONTENT_PRIMARY = 'entityDashboardContentPrimary';
const AREA_ENTITY_DASHBOARD_SPEED_PRIMARY = 'entityDashboardSpeedPrimary';
const AREA_ENTITY_DASHBOARD_MONETIZATION_PRIMARY = 'entityDashboardMonetizationPrimary';
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
  // Main dashboard
  AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY,
  AREA_MAIN_DASHBOARD_TRAFFIC_PRIMARY,
  AREA_MAIN_DASHBOARD_CONTENT_PRIMARY,
  AREA_MAIN_DASHBOARD_SPEED_PRIMARY,
  AREA_MAIN_DASHBOARD_MONETIZATION_PRIMARY,
  // Entity dashboard
  AREA_ENTITY_DASHBOARD_TRAFFIC_PRIMARY,
  AREA_ENTITY_DASHBOARD_CONTENT_PRIMARY,
  AREA_ENTITY_DASHBOARD_SPEED_PRIMARY,
  AREA_ENTITY_DASHBOARD_MONETIZATION_PRIMARY
});

/***/ }),

/***/ "./js/googlesitekit/widgets/hooks/useWidget.ts":
/*!*****************************************************!*\
  !*** ./js/googlesitekit/widgets/hooks/useWidget.ts ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ useWidget)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _js_googlesitekit_widgets_components_WidgetContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/googlesitekit/widgets/components/WidgetContext */ "./js/googlesitekit/widgets/components/WidgetContext.tsx");
/**
 * `useWidget` hook.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


/**
 * Returns the current widget context.
 *
 * @since n.e.x.t
 *
 * @return {WidgetContextValue} The current widget context.
 */
function useWidget() {
  const widgetContext = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useContext)(_js_googlesitekit_widgets_components_WidgetContext__WEBPACK_IMPORTED_MODULE_0__["default"]);
  return widgetContext;
}

/***/ }),

/***/ "./js/googlesitekit/widgets/hooks/useWidgetStateEffect.js":
/*!****************************************************************!*\
  !*** ./js/googlesitekit/widgets/hooks/useWidgetStateEffect.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ useWidgetStateEffect)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_widgets_datastore_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/widgets/datastore/constants */ "./js/googlesitekit/widgets/datastore/constants.js");
/**
 * `useWidgetStateEffect` hook.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


function useWidgetStateEffect(widgetSlug, Component, metadata) {
  const {
    setWidgetState,
    unsetWidgetState
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_googlesitekit_widgets_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_WIDGETS);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useEffect)(() => {
    setWidgetState(widgetSlug, Component, metadata);
    return () => {
      unsetWidgetState(widgetSlug, Component, metadata);
    };
  }, [widgetSlug, Component, metadata, setWidgetState, unsetWidgetState]);
}

/***/ }),

/***/ "./js/googlesitekit/widgets/util/combine-widgets.js":
/*!**********************************************************!*\
  !*** ./js/googlesitekit/widgets/util/combine-widgets.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   combineWidgets: () => (/* binding */ combineWidgets)
/* harmony export */ });
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ "./js/googlesitekit/widgets/util/constants.js");
/**
 * Widgets combination utilities.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */

function stateAndRowMatch(stateA, stateB, rowA, rowB) {
  return rowA === rowB && (0,lodash__WEBPACK_IMPORTED_MODULE_0__.isEqual)(stateA, stateB);
}

/**
 * Determines whether all the widgets in a given area should be combined.
 *
 * The given widgets in an area can all be combined if they are
 * all from the same module and they are all in the same special
 * state (see #3225).
 *
 * @since 1.34.0
 *
 * @param {Array.<Object>} widgets      List of widgets.
 * @param {Object}         widgetStates Map of widget slug and their
 *                                      state (either an object with
 *                                      `Component` and `metadata`, or
 *                                      `null`).
 * @return {boolean} 			Whether all the widgets should be combined.
 */
function shouldCombineAllWidgets(widgets, widgetStates) {
  const states = {};
  for (let i = 0; i < widgets.length; i++) {
    const widget = widgets[i];
    const widgetState = widgetStates?.[widget.slug];
    const state = widgetState?.Component;
    const module = widgetState?.metadata?.moduleSlug;
    const isSpecialState = _constants__WEBPACK_IMPORTED_MODULE_1__.SPECIAL_WIDGET_STATES.includes(state);
    if (!state || !module || !isSpecialState) {
      return false;
    }
    if (states[module]) {
      if (states[module] !== state) {
        // We have a widget from a given module in a different state from the others.
        return false;
      }
    } else {
      states[module] = state;
    }
  }
  if (Object.keys(states).length > 1) {
    // We have multiple modules, so the widgets can't be combined.
    return false;
  }
  return true;
}

/*
 * Combines consecutive widgets with similar states within the same row.
 *
 * @since 1.25.0
 *
 * @param {Array.<Object>} widgets             List of widgets.
 * @param {Object}         widgetStates        Map of widget slug and their
 *                                             state (either an object with
 *                                             `Component` and `metadata`, or
 *                                             `null`).
 * @param {Object}         layout              Layout arguments from
 *                                             	`getWidgetLayout()`.
 * @param {Array.<number>} layout.columnWidths List of column widths for each
 *                                             widget.
 * @param {Array.<number>} layout.rowIndexes   List of row indexes for each
 *                                             widget.
 * @return {Object} Object with `overrideComponents` property, both of which are a
 * 					list with one item for each widget. Every `overrideComponents`
 * 					entry is either an object with `Component` and `metadata`, or
 * 					`null` (similar to the `widgetStates` parameter).
 */
function combineWidgets(widgets, widgetStates, {
  columnWidths,
  rowIndexes
}) {
  const overrideComponents = [];
  const gridColumnWidths = [...columnWidths];
  if (!widgets?.length) {
    return {
      gridColumnWidths,
      overrideComponents
    };
  }
  let currentState = null;
  let currentRowIndex = -1;
  let columnWidthsBuffer = [];
  if (shouldCombineAllWidgets(widgets, widgetStates)) {
    // All the widgets have the same state, so we should only render one and hide the rest.
    const hiddenRows = Array.from({
      length: widgets.length - 1
    }).fill(0);
    // Since all the components are the same, we can just pick the first.
    const overrideComponent = widgetStates[widgets[0].slug];
    return {
      overrideComponents: [overrideComponent],
      gridColumnWidths: [12,
      // Full width row.
      ...hiddenRows]
    };
  }
  widgets.forEach((widget, i) => {
    overrideComponents.push(null);
    currentState = widgetStates[widget.slug];
    currentRowIndex = rowIndexes[i];

    // If the current widget has a special state...
    if (currentState) {
      if (stateAndRowMatch(currentState, widgetStates[widgets[i + 1]?.slug], currentRowIndex, rowIndexes[i + 1])) {
        // If the current widget state and row index match the next
        // state and row index, hide the widget entirely. Only the last
        // similar instance will be rendered in this case.
        columnWidthsBuffer.push(columnWidths[i]);
        // Mark this column as width = 0, so we can hide it
        gridColumnWidths[i] = 0;
      } else if (columnWidthsBuffer.length > 0) {
        // If the state and row index do not match the next ones and
        // there are already similar instances (from previous
        // iterations), this is the last similar instance, so the
        // combined version will need to be displayed instead of the
        // widget. The combined version will use the common Component
        // and pass all common metadata as props.
        columnWidthsBuffer.push(columnWidths[i]);

        // Get total (desktop) column width. For tablet and phone,
        // the component should span the full width as by definition
        // it is at least a "half" widget wide (which has that behavior).
        const combinedColumnWidth = columnWidthsBuffer.reduce((sum, columnWidth) => sum + columnWidth, 0);
        overrideComponents[i] = currentState;

        // This final column should have the combined width
        gridColumnWidths[i] = combinedColumnWidth;

        // Reset the columnWidthsBuffer variable.
        columnWidthsBuffer = [];
      }
    }
  });
  return {
    gridColumnWidths,
    overrideComponents
  };
}

/***/ }),

/***/ "./js/googlesitekit/widgets/util/constants.js":
/*!****************************************************!*\
  !*** ./js/googlesitekit/widgets/util/constants.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   HIDDEN_CLASS: () => (/* binding */ HIDDEN_CLASS),
/* harmony export */   SPECIAL_WIDGET_STATES: () => (/* binding */ SPECIAL_WIDGET_STATES),
/* harmony export */   WIDTH_GRID_COUNTER_MAP: () => (/* binding */ WIDTH_GRID_COUNTER_MAP)
/* harmony export */ });
/* harmony import */ var _js_googlesitekit_widgets_datastore_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/googlesitekit/widgets/datastore/constants */ "./js/googlesitekit/widgets/datastore/constants.js");
/* harmony import */ var _js_components_ReportZero__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/ReportZero */ "./js/components/ReportZero.js");
/* harmony import */ var _js_components_RecoverableModules__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/RecoverableModules */ "./js/components/RecoverableModules.js");
/**
 * Widgets layout constants.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */



const WIDTH_GRID_COUNTER_MAP = {
  [_js_googlesitekit_widgets_datastore_constants__WEBPACK_IMPORTED_MODULE_0__.WIDGET_WIDTHS.QUARTER]: 3,
  [_js_googlesitekit_widgets_datastore_constants__WEBPACK_IMPORTED_MODULE_0__.WIDGET_WIDTHS.HALF]: 6,
  [_js_googlesitekit_widgets_datastore_constants__WEBPACK_IMPORTED_MODULE_0__.WIDGET_WIDTHS.FULL]: 12
};
const HIDDEN_CLASS = 'googlesitekit-hidden';
const SPECIAL_WIDGET_STATES = [_js_components_ReportZero__WEBPACK_IMPORTED_MODULE_1__["default"], _js_components_RecoverableModules__WEBPACK_IMPORTED_MODULE_2__["default"]];

/***/ }),

/***/ "./js/googlesitekit/widgets/util/get-widget-component-props.js":
/*!*********************************************************************!*\
  !*** ./js/googlesitekit/widgets/util/get-widget-component-props.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   getWidgetComponentProps: () => (/* binding */ getWidgetComponentProps),
/* harmony export */   withWPDashboardWidgetComponentProps: () => (/* binding */ withWPDashboardWidgetComponentProps),
/* harmony export */   withWidgetComponentProps: () => (/* binding */ withWidgetComponentProps)
/* harmony export */ });
/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! memize */ "../node_modules/memize/index.js");
/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(memize__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_widgets_components_Widget__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/widgets/components/Widget */ "./js/googlesitekit/widgets/components/Widget.js");
/* harmony import */ var _js_googlesitekit_widgets_components_WidgetReportZero__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/widgets/components/WidgetReportZero */ "./js/googlesitekit/widgets/components/WidgetReportZero.js");
/* harmony import */ var _js_googlesitekit_widgets_components_WidgetReportError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/widgets/components/WidgetReportError */ "./js/googlesitekit/widgets/components/WidgetReportError.js");
/* harmony import */ var _js_googlesitekit_widgets_components_WidgetNull__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/widgets/components/WidgetNull */ "./js/googlesitekit/widgets/components/WidgetNull.js");
/* harmony import */ var _js_googlesitekit_widgets_components_WidgetRecoverableModules__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/widgets/components/WidgetRecoverableModules */ "./js/googlesitekit/widgets/components/WidgetRecoverableModules.js");
/* harmony import */ var _js_googlesitekit_widgets_components_WPDashboardReportError__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/widgets/components/WPDashboardReportError */ "./js/googlesitekit/widgets/components/WPDashboardReportError.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Widgets component props utilities.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */







/**
 * WordPress dependencies
 */


/**
 * Gets the props to pass to a widget's component.
 *
 * @since 1.25.0
 * @since 1.107.0 Added `widgetSlug` to the returned props.
 *
 * @param {string} widgetSlug The widget's slug.
 * @return {Object} Props to pass to the widget component.
 */

const getWidgetComponentProps = memize__WEBPACK_IMPORTED_MODULE_0___default()(widgetSlug => {
  // Scope widget-specific components to the widget instance so that the
  // component does not need to (re-)specify the widget slug.
  return {
    widgetSlug,
    Widget: withWidgetSlug(widgetSlug)(_js_googlesitekit_widgets_components_Widget__WEBPACK_IMPORTED_MODULE_1__["default"]),
    WidgetRecoverableModules: withWidgetSlug(widgetSlug)(_js_googlesitekit_widgets_components_WidgetRecoverableModules__WEBPACK_IMPORTED_MODULE_5__["default"]),
    WidgetReportZero: withWidgetSlug(widgetSlug)(_js_googlesitekit_widgets_components_WidgetReportZero__WEBPACK_IMPORTED_MODULE_2__["default"]),
    WidgetReportError: withWidgetSlug(widgetSlug)(_js_googlesitekit_widgets_components_WidgetReportError__WEBPACK_IMPORTED_MODULE_3__["default"]),
    WidgetNull: withWidgetSlug(widgetSlug)(_js_googlesitekit_widgets_components_WidgetNull__WEBPACK_IMPORTED_MODULE_4__["default"])
  };
});
function withWidgetSlug(widgetSlug) {
  return WrappedComponent => {
    const WithWidgetSlug = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.forwardRef)((props, ref) => {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(WrappedComponent, {
        ...props,
        ref: ref,
        widgetSlug: widgetSlug
      });
    });
    WithWidgetSlug.displayName = 'WithWidgetSlug';
    if (WrappedComponent.displayName || WrappedComponent.name) {
      WithWidgetSlug.displayName += `(${WrappedComponent.displayName || WrappedComponent.name})`;
    }
    return WithWidgetSlug;
  };
}

/**
 * Gets the props and passes them to the widget's component through a HOC.
 *
 * @since 1.26.0
 *
 * @param {string} widgetSlug The slug of the widget.
 * @return {Function} Enhancing function that adds the getWidgetComponentProps to the passed component.
 */
function withWidgetComponentProps(widgetSlug) {
  const widgetComponentProps = getWidgetComponentProps(widgetSlug);
  return WrappedComponent => {
    function DecoratedComponent(props) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(WrappedComponent, {
        ...props,
        ...widgetComponentProps
      });
    }
    DecoratedComponent.displayName = 'WithWidgetComponentProps';
    if (WrappedComponent.displayName || WrappedComponent.name) {
      DecoratedComponent.displayName += `(${WrappedComponent.displayName || WrappedComponent.name})`;
    }
    return DecoratedComponent;
  };
}

/**
 * Gets the props and passes them to the WP Dashboard widget's component through a HOC.
 *
 * @since 1.114.0
 *
 * @param {string} widgetSlug The slug of the widget.
 * @return {Function} Enhancing function that adds the WP Dashboard specific
 *                    props to the passed component.
 */
function withWPDashboardWidgetComponentProps(widgetSlug) {
  return WrappedComponent => {
    function DecoratedComponent(props) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(WrappedComponent, {
        ...props,
        WPDashboardReportError: withWidgetSlug(widgetSlug)(_js_googlesitekit_widgets_components_WPDashboardReportError__WEBPACK_IMPORTED_MODULE_6__["default"])
      });
    }
    DecoratedComponent.displayName = 'WithWPDashboardWidgetComponentProps';
    if (WrappedComponent.displayName || WrappedComponent.name) {
      DecoratedComponent.displayName += `(${WrappedComponent.displayName || WrappedComponent.name})`;
    }
    return DecoratedComponent;
  };
}

/***/ }),

/***/ "./js/googlesitekit/widgets/util/get-widget-layout.js":
/*!************************************************************!*\
  !*** ./js/googlesitekit/widgets/util/get-widget-layout.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   getWidgetLayout: () => (/* binding */ getWidgetLayout)
/* harmony export */ });
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/googlesitekit/widgets/util/constants.js");
/* harmony import */ var _is_inactive_widget_state__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./is-inactive-widget-state */ "./js/googlesitekit/widgets/util/is-inactive-widget-state.js");
/**
 * Widgets layout utilities.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */



/**
 * Adjusts column widths to better fit into the current row knowing that the default sizes don't fill the row completely.
 *
 * @since 1.21.0
 *
 * @param {Array.<number>} columnWidths Current column widths.
 * @param {number}         counter      Current counter.
 * @return {Array} Array where the first element is the updated list of column
 *                 widths, and the second element is the resulting counter
 *                 after the update.
 */
function resizeColumns(columnWidths, counter) {
  // Safeguard: counter must always be 9 for this to work.
  if (counter !== 9) {
    return [columnWidths, counter];
  }
  columnWidths = [...columnWidths];

  // Start counting backwards from the last item.
  let i = columnWidths.length - 1;

  // Go back until counter is 0. The i >= 0 check is an extra safeguard that, with
  // correct usage should never apply, but is still useful to avoid infinite loops
  // if the function was used incorrectly.
  while (counter !== 0 && i >= 0) {
    // Replace the 3-column width with a 4-column width, or the 6-column
    // width with an 8-column width so that the overall row expands from
    // 9 to the full 12 columns.
    if (columnWidths[i] === 3) {
      counter -= 3;
      columnWidths[i] = 4; // Correct the column width.
    } else if (columnWidths[i] === 6) {
      counter -= 6;
      columnWidths[i] = 8; // Correct the column width.
    }
    i--;
  }
  return [columnWidths, counter];
}

/**
 * Gets an array of sizes that widget can take accounting the current counter value.
 *
 * @since 1.21.0
 *
 * @param {number} counter The current counter.
 * @param {Object} widget  Widget object.
 * @return {Array.<Object>} List of objects with `counter` and `width` properties.
 */
function getWidgetSizes(counter, widget) {
  const widths = Array.isArray(widget.width) ? widget.width : [widget.width];
  return widths.map(width => ({
    counter: counter + _constants__WEBPACK_IMPORTED_MODULE_0__.WIDTH_GRID_COUNTER_MAP[width],
    width
  }));
}

/**
 * Gets the first active widget in a list of widgets, after a specified offset,
 * based on a set of widget states specifying which widgets are inactive.
 *
 * @since 1.28.0
 * @private
 *
 * @param {number}         offset       The current index offset.
 * @param {Array.<Object>} widgets      List of widgets.
 * @param {Array.<Object>} widgetStates List of widget states.
 * @return {Object|null} Object representing the next active widget from the widgets array,
 * or null if no more active widgets exist.
 */
function getNextActiveWidget(offset, widgets, widgetStates) {
  while (++offset < widgets.length) {
    if (!(0,_is_inactive_widget_state__WEBPACK_IMPORTED_MODULE_1__.isInactiveWidgetState)(widgetStates[widgets[offset].slug])) {
      return widgets[offset];
    }
  }
  return null;
}

/**
 * Gets widget class names as well as column widths and row indexes for an area.
 *
 * @since 1.25.0
 *
 * @param {Array.<Object>} widgets      List of widgets.
 * @param {Array.<Object>} widgetStates List of widget states.
 * @return {Object} Object with `columnWidths` and `rowIndexes`
 *                  properties, each of which is an array with one item for
 *                  each active widget.
 */
function getWidgetLayout(widgets, widgetStates) {
  let columnWidths = [];
  const rowIndexes = [];
  if (!widgets?.length) {
    return {
      columnWidths,
      rowIndexes
    };
  }
  let counter = 0;
  let rowIndex = 0;
  function ascending({
    counter: a
  }, {
    counter: b
  }) {
    return a - b;
  }
  function descending({
    counter: a
  }, {
    counter: b
  }) {
    return b - a;
  }
  function fitIntoRow({
    counter: width
  }) {
    return width <= 12;
  }
  widgets.forEach((widget, i) => {
    // If a widget is inactive, we set null / 0 values and don't need to calculate a layout.

    if ((0,_is_inactive_widget_state__WEBPACK_IMPORTED_MODULE_1__.isInactiveWidgetState)(widgetStates[widget.slug])) {
      columnWidths.push(0);
      rowIndexes.push(rowIndex);
      return;
    }

    // Get available sizes for the current widget to select the most appropriate width for the current row.
    let sizes = getWidgetSizes(counter, widget);

    // Get the next active widget to help determine the best width for this widget.
    const nextActiveWidget = getNextActiveWidget(i, widgets, widgetStates);
    if (
    // If it is the last widget in the entire widget area.
    null === nextActiveWidget ||
    // Or the next widget can't fit into the current row anyway, then we can try to use alternative sizes.
    getWidgetSizes(sizes.sort(ascending)[0].counter, nextActiveWidget).filter(fitIntoRow).length === 0) {
      // We need to check whether we have a size that can fit into the row and if so, try to get it.
      const hasSizeThatCanFitIntoRow = sizes.some(fitIntoRow);
      if (hasSizeThatCanFitIntoRow) {
        // Sort available sizes to have the descending order.
        sizes = sizes.sort(descending);
        // Filter out only those sizes that fit into the current row.
        sizes = sizes.filter(fitIntoRow);
      }
    }

    // Grab the width of the first size in the sizes list, it's either the default one or the best suiting to the current row.
    const width = sizes[0].width;

    // Populate row index for the widget. The value may be corrected further below.
    rowIndexes.push(rowIndex);

    // Increase column counter based on width.
    counter += _constants__WEBPACK_IMPORTED_MODULE_0__.WIDTH_GRID_COUNTER_MAP[width];

    // If counter is going above 12, this widget is too wide for the current row.
    // So it's going to be the first widget in the next row instead.
    if (counter > 12) {
      counter -= _constants__WEBPACK_IMPORTED_MODULE_0__.WIDTH_GRID_COUNTER_MAP[width];

      // Correct the previously added row index for this widget as it
      // will end up in the following row.
      rowIndexes[i]++;

      // If the column count without the overflowing widget is exactly 9, expand
      // the widths of these widgets slightly to fill the entire 12 columns.
      if (counter === 9) {
        [columnWidths, counter] = resizeColumns(columnWidths, counter);
      }

      // See above, initial counter for the next row of widgets.
      counter = _constants__WEBPACK_IMPORTED_MODULE_0__.WIDTH_GRID_COUNTER_MAP[width];
      rowIndex++;
    } else if (counter === 12) {
      // Or if the counter is exactly 12, the next widget is going to be in a new row.
      counter = 0;
      rowIndex++;
    }

    // Actually set the columnWidth for the current widget. This must be set after
    // potentially resizing, since in that case this will be the overflowing
    // widget which should NOT be adjusted because it will be in the next row.
    columnWidths.push(_constants__WEBPACK_IMPORTED_MODULE_0__.WIDTH_GRID_COUNTER_MAP[width]);
  });
  if (counter === 9) {
    [columnWidths, counter] = resizeColumns(columnWidths, counter);
  }
  return {
    columnWidths,
    rowIndexes
  };
}

/***/ }),

/***/ "./js/googlesitekit/widgets/util/index.js":
/*!************************************************!*\
  !*** ./js/googlesitekit/widgets/util/index.js ***!
  \************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   HIDDEN_CLASS: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_3__.HIDDEN_CLASS),
/* harmony export */   SPECIAL_WIDGET_STATES: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_3__.SPECIAL_WIDGET_STATES),
/* harmony export */   WIDTH_GRID_COUNTER_MAP: () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_3__.WIDTH_GRID_COUNTER_MAP),
/* harmony export */   combineWidgets: () => (/* reexport safe */ _combine_widgets__WEBPACK_IMPORTED_MODULE_1__.combineWidgets),
/* harmony export */   getWidgetComponentProps: () => (/* reexport safe */ _get_widget_component_props__WEBPACK_IMPORTED_MODULE_2__.getWidgetComponentProps),
/* harmony export */   getWidgetLayout: () => (/* reexport safe */ _get_widget_layout__WEBPACK_IMPORTED_MODULE_0__.getWidgetLayout),
/* harmony export */   isInactiveWidgetState: () => (/* reexport safe */ _is_inactive_widget_state__WEBPACK_IMPORTED_MODULE_5__.isInactiveWidgetState),
/* harmony export */   normalizeWidgetModules: () => (/* reexport safe */ _widget_modules__WEBPACK_IMPORTED_MODULE_4__.normalizeWidgetModules),
/* harmony export */   withWPDashboardWidgetComponentProps: () => (/* reexport safe */ _get_widget_component_props__WEBPACK_IMPORTED_MODULE_2__.withWPDashboardWidgetComponentProps),
/* harmony export */   withWidgetComponentProps: () => (/* reexport safe */ _get_widget_component_props__WEBPACK_IMPORTED_MODULE_2__.withWidgetComponentProps)
/* harmony export */ });
/* harmony import */ var _get_widget_layout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./get-widget-layout */ "./js/googlesitekit/widgets/util/get-widget-layout.js");
/* harmony import */ var _combine_widgets__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./combine-widgets */ "./js/googlesitekit/widgets/util/combine-widgets.js");
/* harmony import */ var _get_widget_component_props__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./get-widget-component-props */ "./js/googlesitekit/widgets/util/get-widget-component-props.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants */ "./js/googlesitekit/widgets/util/constants.js");
/* harmony import */ var _widget_modules__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./widget-modules */ "./js/googlesitekit/widgets/util/widget-modules.js");
/* harmony import */ var _is_inactive_widget_state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./is-inactive-widget-state */ "./js/googlesitekit/widgets/util/is-inactive-widget-state.js");
/**
 * Widgets API utilities.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */








/***/ }),

/***/ "./js/googlesitekit/widgets/util/is-inactive-widget-state.js":
/*!*******************************************************************!*\
  !*** ./js/googlesitekit/widgets/util/is-inactive-widget-state.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   isInactiveWidgetState: () => (/* binding */ isInactiveWidgetState)
/* harmony export */ });
/* harmony import */ var _js_components_Null__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/components/Null */ "./js/components/Null.js");
/**
 * Is inactive widget utility.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */


/**
 * Combines consecutive widgets with similar states within the same row.
 *
 * @since 1.28.0
 *
 * @param {Object|null} widgetState Widget state (either an object with `Component` and `metadata`, or `null`).
 * @return {boolean} True if widget is inactive, otherwise false.
 */
function isInactiveWidgetState(widgetState) {
  return !!widgetState && widgetState.Component === _js_components_Null__WEBPACK_IMPORTED_MODULE_0__["default"];
}

/***/ }),

/***/ "./js/googlesitekit/widgets/util/widget-modules.js":
/*!*********************************************************!*\
  !*** ./js/googlesitekit/widgets/util/widget-modules.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   normalizeWidgetModules: () => (/* binding */ normalizeWidgetModules)
/* harmony export */ });
/**
 * Widget's modules utility.
 *
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Normalizes widget's modules by converting it to an array and filtering out all non-string values.
 *
 * @since 1.71.0
 *
 * @param {string|Array.<string>} modules Widget's mdoules.
 * @return {Array.<string>} Widget's modules list.
 */
function normalizeWidgetModules(modules) {
  return (Array.isArray(modules) ? modules : [modules]).filter(module => typeof module === 'string' && module.length > 0);
}

/***/ }),

/***/ "./js/hooks/useActivateModuleCallback.js":
/*!***********************************************!*\
  !*** ./js/hooks/useActivateModuleCallback.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ useActivateModuleCallback)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_location_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/location/constants */ "./js/googlesitekit/datastore/location/constants.js");
/* harmony import */ var _js_googlesitekit_api_cache__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/api/cache */ "./js/googlesitekit/api/cache.js");
/* harmony import */ var _js_util_tracking__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/util/tracking */ "./js/util/tracking/index.js");
/* harmony import */ var _useViewContext__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./useViewContext */ "./js/hooks/useViewContext.js");
/**
 * `useActivateModuleCallback` hook.
 *
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */









/**
 * Returns a callback to activate a module. If the call to activate the module is successful, navigate to the reauthentication URL.
 * Returns null if the module doesn't exist or the user can't manage options.
 *
 * @since 1.70.0
 *
 * @param {string} moduleSlug Module slug.
 * @return {Function|null} Callback to activate module, null if the module doesn't exist or the user can't manage options.
 */
function useActivateModuleCallback(moduleSlug) {
  const viewContext = (0,_useViewContext__WEBPACK_IMPORTED_MODULE_7__["default"])();
  const module = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_MODULES).getModule(moduleSlug));
  const canManageOptions = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).hasCapability(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.PERMISSION_MANAGE_OPTIONS));
  const {
    activateModule
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_MODULES);
  const {
    navigateTo
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_googlesitekit_datastore_location_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_LOCATION);
  const {
    setInternalServerError
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_SITE);
  const activateModuleCallback = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.useCallback)(async () => {
    const {
      error,
      response
    } = await activateModule(moduleSlug);
    if (!error) {
      await (0,_js_util_tracking__WEBPACK_IMPORTED_MODULE_6__.trackEvent)(`${viewContext}_widget-activation-cta`, 'activate_module', moduleSlug);
      await (0,_js_googlesitekit_api_cache__WEBPACK_IMPORTED_MODULE_5__.setItem)('module_setup', moduleSlug, {
        ttl: 300
      });
      navigateTo(response.moduleReauthURL);
    } else {
      setInternalServerError({
        id: `${moduleSlug}-setup-error`,
        description: error.message
      });
    }
  }, [activateModule, moduleSlug, navigateTo, setInternalServerError, viewContext]);
  if (!module?.name || !canManageOptions) {
    return null;
  }
  return activateModuleCallback;
}

/***/ }),

/***/ "./js/hooks/useBreakpoint.ts":
/*!***********************************!*\
  !*** ./js/hooks/useBreakpoint.ts ***!
  \***********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   BREAKPOINT_DESKTOP: () => (/* binding */ BREAKPOINT_DESKTOP),
/* harmony export */   BREAKPOINT_SMALL: () => (/* binding */ BREAKPOINT_SMALL),
/* harmony export */   BREAKPOINT_TABLET: () => (/* binding */ BREAKPOINT_TABLET),
/* harmony export */   BREAKPOINT_XLARGE: () => (/* binding */ BREAKPOINT_XLARGE),
/* harmony export */   useBreakpoint: () => (/* binding */ useBreakpoint)
/* harmony export */ });
/* harmony import */ var _useWindowSize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./useWindowSize */ "./js/hooks/useWindowSize.ts");
/**
 * `useBreakpoint` hook.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */



/**
 * Breakpoint for an extra large screen (over `1280px` wide).
 */
const BREAKPOINT_XLARGE = 'xlarge';
/**
 * Breakpoint for a desktop screen (over `960px` wide).
 */
const BREAKPOINT_DESKTOP = 'desktop';
/**
 * Breakpoint for a tablet screen (over `600px` wide).
 */
const BREAKPOINT_TABLET = 'tablet';
/**
 * Breakpoint for a mobile phone screen (any screen `600px` wide or less).
 */
const BREAKPOINT_SMALL = 'small';

/**
 * Retrieves the current breakpoint.
 *
 * @since 1.29.0
 *
 * @return {string} The current breakpoint according to the window size.
 */
function useBreakpoint() {
  const windowWidth = (0,_useWindowSize__WEBPACK_IMPORTED_MODULE_0__.useWindowWidth)();
  if (windowWidth > 1280) {
    return BREAKPOINT_XLARGE;
  }
  if (windowWidth > 960) {
    return BREAKPOINT_DESKTOP;
  }
  if (windowWidth > 600) {
    return BREAKPOINT_TABLET;
  }
  return BREAKPOINT_SMALL;
}

/***/ }),

/***/ "./js/hooks/useCompleteModuleActivationCallback.js":
/*!*********************************************************!*\
  !*** ./js/hooks/useCompleteModuleActivationCallback.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ useCompleteModuleActivationCallback)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_location_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/location/constants */ "./js/googlesitekit/datastore/location/constants.js");
/**
 * `useCompleteModuleActivationCallback` hook.
 *
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */





/**
 * Returns a callback to navigate users to the module's authentication URL.
 *
 * Returns null if the module doesn't exist or the user can't manage options.
 *
 * @since 1.73.0
 *
 * @param {string} moduleSlug Module slug.
 * @return {Function|null} Callback that navigates to a module's reauth URL, null if the module doesn't exist or the user can't manage options.
 */
function useCompleteModuleActivationCallback(moduleSlug) {
  const canManageOptions = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).hasCapability(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.PERMISSION_MANAGE_OPTIONS));
  const moduleStoreName = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_MODULES).getModuleStoreName(moduleSlug));
  const adminReauthURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(moduleStoreName)?.getAdminReauthURL());
  const {
    navigateTo
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_googlesitekit_datastore_location_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_LOCATION);
  const completeModuleActivationCallback = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.useCallback)(() => navigateTo(adminReauthURL), [adminReauthURL, navigateTo]);
  if (!adminReauthURL || !canManageOptions) {
    return null;
  }
  return completeModuleActivationCallback;
}

/***/ }),

/***/ "./js/hooks/useDebounce.js":
/*!*********************************!*\
  !*** ./js/hooks/useDebounce.js ***!
  \*********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   useDebounce: () => (/* binding */ useDebounce)
/* harmony export */ });
/* harmony import */ var use_memo_one__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! use-memo-one */ "../node_modules/use-memo-one/dist/use-memo-one.esm.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/**
 * `useDebounce` hook, from @wordpress/compose.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// @TODO When we upgrade React to 16.4, we can also upgrade @wordpress/compose, and then this file can be removed.

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Debounces a function with Lodash's `debounce`.
 *
 * A new debounced function will be returned and any scheduled calls
 * cancelled if any of the arguments change, including the function to debounce,
 * so please wrap functions created on render in components in `useCallback`.
 *
 * @since 1.26.0
 *
 * @param {...any} args Arguments passed to Lodash's `debounce`.
 * @return {Function} Debounced function.
 */
function useDebounce(...args) {
  const debounced = (0,use_memo_one__WEBPACK_IMPORTED_MODULE_1__.useMemoOne)(() => (0,lodash__WEBPACK_IMPORTED_MODULE_0__.debounce)(...args), args);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useEffect)(() => () => debounced.cancel(), [debounced]);
  return debounced;
}

/***/ }),

/***/ "./js/hooks/useFeature.js":
/*!********************************!*\
  !*** ./js/hooks/useFeature.js ***!
  \********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   useFeature: () => (/* binding */ useFeature)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _js_components_FeaturesProvider_FeaturesContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/components/FeaturesProvider/FeaturesContext */ "./js/components/FeaturesProvider/FeaturesContext.js");
/* harmony import */ var _js_features__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/features */ "./js/features/index.js");
/**
 * Feature Flags hook.
 *
 * Site Kit by Google, Copyright 2020 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



/**
 * Returns the enabled state of a feature flag.
 *
 * @since 1.25.0
 *
 * @param {string} feature The feature flag name to check enabled state for.
 * @return {boolean} `true` if the feature is enabled, `false` otherwise.
 */
function useFeature(feature) {
  const enabledFeatures = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useContext)(_js_components_FeaturesProvider_FeaturesContext__WEBPACK_IMPORTED_MODULE_0__["default"]);
  return (0,_js_features__WEBPACK_IMPORTED_MODULE_1__.isFeatureEnabled)(feature, enabledFeatures);
}

/***/ }),

/***/ "./js/hooks/useFormValue.js":
/*!**********************************!*\
  !*** ./js/hooks/useFormValue.js ***!
  \**********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ useFormValue)
/* harmony export */ });
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/data */ "../node_modules/@wordpress/data/build-module/components/use-select/index.js");
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/**
 * Form value hook.
 *
 * Site Kit by Google, Copyright 2020 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


/**
 * Returns the value of a form field.
 *
 * @since 1.160.0
 *
 * @param {string} formName The name of the form.
 * @param {string} key      The key of the form field.
 * @return {string|number|boolean|Array|Object|undefined} The value of the form field, or the default value if provided.
 */
function useFormValue(formName, key) {
  return (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_1__["default"])(select => {
    const {
      getValue
    } = select(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_0__.CORE_FORMS);
    return getValue(formName, key);
  }, [formName, key]);
}

/***/ }),

/***/ "./js/hooks/useInView.js":
/*!*******************************!*\
  !*** ./js/hooks/useInView.js ***!
  \*******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   useInView: () => (/* binding */ useInView)
/* harmony export */ });
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useUpdateEffect.js");
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/data */ "../node_modules/@wordpress/data/build-module/components/use-select/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _js_components_InViewProvider_InViewContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/components/InViewProvider/InViewContext */ "./js/components/InViewProvider/InViewContext.js");
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/**
 * In viewport hook.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */
// Imported directly from `@wordpress/data` to avoid circular
// dependency/imports.



/**
 * Internal dependencies
 */



/**
 * Returns whether the nearest parent component tracking viewport detection is in-view.
 *
 * @since 1.46.0
 *
 * @param {Object}  options        Optional. Options to pass to the request.
 * @param {boolean} options.sticky Set to `true` to always return `true` after the nearest viewport-detecting component has been in-view once. Defaults to `false`.
 * @return {boolean} `true` if the nearest parent component is in-view (or if `sticky` is `true`, if the component has ever been in-view); `false` if not..
 */
function useInView({
  sticky = false
} = {}) {
  const inView = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useContext)(_js_components_InViewProvider_InViewContext__WEBPACK_IMPORTED_MODULE_0__["default"]);
  const [hasBeenInViewOnce, setHasBeenInViewOnce] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useState)(false);
  const resetCount = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_3__["default"])(select => select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_UI).getInViewResetCount());
  const forceInView = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_3__["default"])(select => select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_UI).getValue('forceInView'));
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useEffect)(() => {
    if (inView.value && !hasBeenInViewOnce) {
      setHasBeenInViewOnce(true);
    }
  }, [hasBeenInViewOnce, inView, setHasBeenInViewOnce]);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useEffect)(() => {
    if (forceInView) {
      setHasBeenInViewOnce(true);
    }
  }, [forceInView]);
  (0,react_use__WEBPACK_IMPORTED_MODULE_4__["default"])(() => {
    setHasBeenInViewOnce(false);
  }, [resetCount]);
  if (sticky && hasBeenInViewOnce) {
    return true;
  }
  return !!inView.value;
}

/***/ }),

/***/ "./js/hooks/useInViewSelect.js":
/*!*************************************!*\
  !*** ./js/hooks/useInViewSelect.js ***!
  \*************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   useInViewSelect: () => (/* binding */ useInViewSelect)
/* harmony export */ });
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/data */ "../node_modules/@wordpress/data/build-module/components/use-select/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _useInView__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./useInView */ "./js/hooks/useInView.js");
/**
 * Select when in-view hook.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


/**
 * Returns undefined when the component is not in view.
 *
 * @since 1.131.0 Moved this inline function outside the hook and assigned it a stable function name.
 *
 * @return {undefined} Always returns undefined.
 */
function notInViewCallback() {
  return undefined;
}

/**
 * Returns whether the nearest parent component tracking viewport detection is in-view.
 *
 * @since 1.49.0
 * @private
 *
 * @param {Function} mapSelect Selector to call when this selector's component is considered in-view.
 * @param {Array}    deps      Deps passed to `useInViewSelect`'s `deps` argument.
 * @return {*} The result of the selector if in-view; `undefined` if not in-view.
 */
function useInViewSelect(mapSelect, deps) {
  const isInView = (0,_useInView__WEBPACK_IMPORTED_MODULE_0__.useInView)({
    sticky: true
  });
  const latestSelectorResult = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useRef)();

  // These are "pass-through" dependencies from the parent hook,
  // and the parent should catch any hook rule violations.
  // eslint-disable-next-line react-hooks/exhaustive-deps
  const mapSelectCallback = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useCallback)(mapSelect, deps);
  const selectorResult = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_2__["default"])(isInView ? mapSelectCallback : notInViewCallback);
  if (isInView) {
    latestSelectorResult.current = selectorResult;
  }
  return latestSelectorResult.current;
}

/***/ }),

/***/ "./js/hooks/useQueryArg.js":
/*!*********************************!*\
  !*** ./js/hooks/useQueryArg.js ***!
  \*********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/url */ "../node_modules/@wordpress/url/build-module/get-query-arg.js");
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/url */ "../node_modules/@wordpress/url/build-module/add-query-args.js");
/**
 * `useQueryArg` hook.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Uses a location query param as a variable in a component.
 *
 * @since 1.24.0
 *
 * @param {string} key            The query param key to be used.
 * @param {string} [initialValue] Optional. The initial value for the query param to be used.
 * @param {Object} [_global]      The global window object.
 * @return {Array} The getter and setter for the query param state.
 */
function useQueryArg(key, initialValue, _global = __webpack_require__.g) {
  const [value, setValue] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)((0,_wordpress_url__WEBPACK_IMPORTED_MODULE_1__.getQueryArg)(_global.location.href, key) || initialValue);
  function onSetValue(newValue) {
    setValue(newValue);
    const newURL = (0,_wordpress_url__WEBPACK_IMPORTED_MODULE_2__.addQueryArgs)(_global.location.href, {
      [key]: newValue
    });
    _global.history.replaceState(null, '', newURL);
  }
  return [value, onSetValue];
}
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useQueryArg);

/***/ }),

/***/ "./js/hooks/useViewContext.js":
/*!************************************!*\
  !*** ./js/hooks/useViewContext.js ***!
  \************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _js_components_Root_ViewContextContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/components/Root/ViewContextContext */ "./js/components/Root/ViewContextContext.js");
/**
 * `useViewContext` hook.
 *
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Returns the current Site Kit viewing context, eg. "dashboard",
 * "entity dashboard", "view-only dashboard", etc.
 *
 * @since 1.74.0
 *
 * @return {string} The current "viewing context" value for the plugin.
 */
function useViewContext() {
  const viewContext = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useContext)(_js_components_Root_ViewContextContext__WEBPACK_IMPORTED_MODULE_0__["default"]);
  return viewContext;
}
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useViewContext);

/***/ }),

/***/ "./js/hooks/useViewOnly.js":
/*!*********************************!*\
  !*** ./js/hooks/useViewOnly.js ***!
  \*********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ useViewOnly)
/* harmony export */ });
/* harmony import */ var _js_googlesitekit_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/googlesitekit/constants */ "./js/googlesitekit/constants.js");
/* harmony import */ var _useViewContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./useViewContext */ "./js/hooks/useViewContext.js");
/**
 * `useViewOnly` hook.
 *
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */



/**
 * Determines if the current view context is a "view only" dashboard context.
 *
 * @since 1.72.0
 *
 * @return {boolean} True if current context is a view-only dashboard context, false otherwise.
 */
function useViewOnly() {
  const viewContext = (0,_useViewContext__WEBPACK_IMPORTED_MODULE_1__["default"])();
  return _js_googlesitekit_constants__WEBPACK_IMPORTED_MODULE_0__.SITE_KIT_VIEW_ONLY_CONTEXTS.includes(viewContext);
}

/***/ }),

/***/ "./js/hooks/useWindowSize.ts":
/*!***********************************!*\
  !*** ./js/hooks/useWindowSize.ts ***!
  \***********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   useWindowHeight: () => (/* binding */ useWindowHeight),
/* harmony export */   useWindowSize: () => (/* binding */ useWindowSize),
/* harmony export */   useWindowWidth: () => (/* binding */ useWindowWidth)
/* harmony export */ });
/* harmony import */ var _react_hook_throttle__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @react-hook/throttle */ "../node_modules/@react-hook/throttle/dist/module/index.js");
/* harmony import */ var _react_hook_event__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @react-hook/event */ "../node_modules/@react-hook/event/dist/module/index.js");
/**
 * `useWindowSize` hook.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Copied from https://github.com/jaredLunde/react-hook/blob/b8ac9515e26937e838a36a27001dc46c7f46a390/packages/window-size/throttled/src/index.tsx
// Modified to use global.innerWidth and global.innerHeight instead of document.documentElement.clientWidth and document.documentElement.clientHeight.

/**
 * External dependencies
 */


function getSize() {
  return [__webpack_require__.g.innerWidth, __webpack_require__.g.innerHeight];
}
function useWindowSize({
  fps = 60,
  leading = false,
  initialWidth = 0,
  initialHeight = 0
} = {}) {
  const [size, setThrottledSize] = (0,_react_hook_throttle__WEBPACK_IMPORTED_MODULE_0__.useThrottle)(/* istanbul ignore next */
  typeof document === 'undefined' ? [initialWidth, initialHeight] : getSize, fps, leading);
  function setSize() {
    return setThrottledSize(getSize);
  }
  (0,_react_hook_event__WEBPACK_IMPORTED_MODULE_1__["default"])(window, 'resize', setSize);
  (0,_react_hook_event__WEBPACK_IMPORTED_MODULE_1__["default"])(window, 'orientationchange', setSize);
  return size;
}
function useWindowHeight(options = {}) {
  return useWindowSize(options)[1];
}
function useWindowWidth(options = {}) {
  return useWindowSize(options)[0];
}

/***/ }),

/***/ "./js/material-components/index.js":
/*!*****************************************!*\
  !*** ./js/material-components/index.js ***!
  \*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Cell: () => (/* reexport safe */ _layout__WEBPACK_IMPORTED_MODULE_1__.Cell),
/* harmony export */   Dialog: () => (/* reexport default from dynamic */ _material_react_dialog__WEBPACK_IMPORTED_MODULE_0___default.a),
/* harmony export */   DialogContent: () => (/* reexport safe */ _material_react_dialog__WEBPACK_IMPORTED_MODULE_0__.DialogContent),
/* harmony export */   DialogFooter: () => (/* reexport safe */ _material_react_dialog__WEBPACK_IMPORTED_MODULE_0__.DialogFooter),
/* harmony export */   Grid: () => (/* reexport safe */ _layout__WEBPACK_IMPORTED_MODULE_1__.Grid),
/* harmony export */   MDCCheckbox: () => (/* reexport safe */ _material_checkbox__WEBPACK_IMPORTED_MODULE_7__.MDCCheckbox),
/* harmony export */   MDCDialog: () => (/* reexport safe */ _material_dialog__WEBPACK_IMPORTED_MODULE_6__.MDCDialog),
/* harmony export */   MDCFormField: () => (/* reexport safe */ _material_form_field__WEBPACK_IMPORTED_MODULE_3__.MDCFormField),
/* harmony export */   MDCMenu: () => (/* reexport safe */ _material_menu__WEBPACK_IMPORTED_MODULE_8__.MDCMenu),
/* harmony export */   MDCRadio: () => (/* reexport safe */ _material_radio__WEBPACK_IMPORTED_MODULE_4__.MDCRadio),
/* harmony export */   MDCRipple: () => (/* reexport safe */ _material_ripple__WEBPACK_IMPORTED_MODULE_2__.MDCRipple),
/* harmony export */   MDCSwitch: () => (/* reexport safe */ _material_switch__WEBPACK_IMPORTED_MODULE_5__.MDCSwitch),
/* harmony export */   Row: () => (/* reexport safe */ _layout__WEBPACK_IMPORTED_MODULE_1__.Row)
/* harmony export */ });
/* harmony import */ var _material_ripple__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @material/ripple */ "../node_modules/@material/ripple/component.js");
/* harmony import */ var _material_form_field__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @material/form-field */ "../node_modules/@material/form-field/component.js");
/* harmony import */ var _material_radio__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @material/radio */ "../node_modules/@material/radio/component.js");
/* harmony import */ var _material_switch__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @material/switch */ "../node_modules/@material/switch/component.js");
/* harmony import */ var _material_dialog__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @material/dialog */ "../node_modules/@material/dialog/component.js");
/* harmony import */ var _material_checkbox__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @material/checkbox */ "../node_modules/@material/checkbox/component.js");
/* harmony import */ var _material_menu__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @material/menu */ "../node_modules/@material/menu/component.js");
/* harmony import */ var _material_react_dialog__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @material/react-dialog */ "../node_modules/@material/react-dialog/dist/index.js");
/* harmony import */ var _material_react_dialog__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_material_react_dialog__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _layout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./layout */ "./js/material-components/layout/index.js");
/**
 * Material components.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */











/***/ }),

/***/ "./js/material-components/layout/Cell.js":
/*!***********************************************!*\
  !*** ./js/material-components/layout/Cell.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Cell)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Material UI > Layout > Cell component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



function Cell(props) {
  const {
    className,
    alignTop,
    alignMiddle,
    alignBottom,
    alignRight,
    alignLeft,
    smAlignRight,
    mdAlignRight,
    lgAlignRight,
    smSize,
    smStart,
    smOrder,
    mdSize,
    mdStart,
    mdOrder,
    lgSize,
    lgStart,
    lgOrder,
    size,
    children,
    ...otherProps
  } = props;
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
    ...otherProps,
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()(className, 'mdc-layout-grid__cell', {
      'mdc-layout-grid__cell--align-top': alignTop,
      'mdc-layout-grid__cell--align-middle': alignMiddle,
      'mdc-layout-grid__cell--align-bottom': alignBottom,
      'mdc-layout-grid__cell--align-right': alignRight,
      'mdc-layout-grid__cell--align-left': alignLeft,
      'mdc-layout-grid__cell--align-right-phone': smAlignRight,
      'mdc-layout-grid__cell--align-right-tablet': mdAlignRight,
      'mdc-layout-grid__cell--align-right-desktop': lgAlignRight,
      [`mdc-layout-grid__cell--span-${size}`]: 12 >= size && size > 0,
      [`mdc-layout-grid__cell--span-${lgSize}-desktop`]: 12 >= lgSize && lgSize > 0,
      [`mdc-layout-grid__cell--start-${lgStart}-desktop`]: 12 >= lgStart && lgStart > 0,
      [`mdc-layout-grid__cell--order-${lgOrder}-desktop`]: 12 >= lgOrder && lgOrder > 0,
      [`mdc-layout-grid__cell--span-${mdSize}-tablet`]: 8 >= mdSize && mdSize > 0,
      [`mdc-layout-grid__cell--start-${mdStart}-tablet`]: 8 >= mdStart && mdStart > 0,
      [`mdc-layout-grid__cell--order-${mdOrder}-tablet`]: 8 >= mdOrder && mdOrder > 0,
      [`mdc-layout-grid__cell--span-${smSize}-phone`]: 4 >= smSize && smSize > 0,
      [`mdc-layout-grid__cell--start-${smStart}-phone`]: 4 >= smStart && smStart > 0,
      [`mdc-layout-grid__cell--order-${smOrder}-phone`]: 4 >= smOrder && smOrder > 0
    }),
    children: children
  });
}
Cell.propTypes = {
  smSize: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().number),
  smStart: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().number),
  smOrder: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().number),
  mdSize: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().number),
  mdStart: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().number),
  mdOrder: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().number),
  lgSize: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().number),
  lgStart: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().number),
  lgOrder: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().number),
  size: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().number),
  alignTop: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),
  alignMiddle: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),
  alignBottom: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),
  alignRight: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),
  alignLeft: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),
  smAlignRight: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),
  mdAlignRight: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),
  lgAlignRight: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),
  className: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string),
  children: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().node)
};
Cell.defaultProps = {
  className: '',
  size: 0,
  smSize: 0,
  smStart: 0,
  smOrder: 0,
  mdSize: 0,
  mdStart: 0,
  mdOrder: 0,
  lgSize: 0,
  lgStart: 0,
  lgOrder: 0
};

/***/ }),

/***/ "./js/material-components/layout/Grid.js":
/*!***********************************************!*\
  !*** ./js/material-components/layout/Grid.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Material UI > Layout > Grid component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


const Grid = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.forwardRef)(({
  alignLeft,
  fill,
  className,
  children,
  collapsed,
  ...otherProps
}, ref) => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('mdc-layout-grid', className, {
      'mdc-layout-grid--align-left': alignLeft,
      'mdc-layout-grid--collapsed': collapsed,
      'mdc-layout-grid--fill': fill
    }),
    ...otherProps,
    ref: ref,
    children: children
  });
});
Grid.displayName = 'Grid';
Grid.propTypes = {
  alignLeft: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),
  fill: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),
  className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  collapsed: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),
  children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node)
};
Grid.defaultProps = {
  className: ''
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Grid);

/***/ }),

/***/ "./js/material-components/layout/Row.js":
/*!**********************************************!*\
  !*** ./js/material-components/layout/Row.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Material UI > Layout > Row component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


const Row = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.forwardRef)(({
  className,
  children,
  ...otherProps
}, ref) => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
    ref: ref,
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('mdc-layout-grid__inner', className),
    ...otherProps,
    children: children
  });
});
Row.displayName = 'Row';
Row.propTypes = {
  className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),
  children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node)
};
Row.defaultProps = {
  className: ''
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Row);

/***/ }),

/***/ "./js/material-components/layout/index.js":
/*!************************************************!*\
  !*** ./js/material-components/layout/index.js ***!
  \************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   Cell: () => (/* reexport safe */ _Cell__WEBPACK_IMPORTED_MODULE_0__["default"]),
/* harmony export */   Grid: () => (/* reexport safe */ _Grid__WEBPACK_IMPORTED_MODULE_2__["default"]),
/* harmony export */   Row: () => (/* reexport safe */ _Row__WEBPACK_IMPORTED_MODULE_1__["default"])
/* harmony export */ });
/* harmony import */ var _Cell__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Cell */ "./js/material-components/layout/Cell.js");
/* harmony import */ var _Row__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Row */ "./js/material-components/layout/Row.js");
/* harmony import */ var _Grid__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Grid */ "./js/material-components/layout/Grid.js");
/**
 * Material UI > Layout components.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */





/***/ }),

/***/ "./js/modules/ads/constants.js":
/*!*************************************!*\
  !*** ./js/modules/ads/constants.js ***!
  \*************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   MODULE_SLUG_ADS: () => (/* binding */ MODULE_SLUG_ADS)
/* harmony export */ });
/**
 * Ads module constants.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const MODULE_SLUG_ADS = 'ads';

/***/ }),

/***/ "./js/modules/ads/utils/validation.js":
/*!********************************************!*\
  !*** ./js/modules/ads/utils/validation.js ***!
  \********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   isValidConversionID: () => (/* binding */ isValidConversionID),
/* harmony export */   isValidExtCustomerID: () => (/* binding */ isValidExtCustomerID),
/* harmony export */   isValidPaxConversionID: () => (/* binding */ isValidPaxConversionID)
/* harmony export */ });
/**
 * Validation utilities.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Checks if the given conversion ID is valid.
 *
 * @since 1.32.0
 * @since 1.121.0 Migrated from analytics to analytics-4.
 * @since 1.124.0 Migrated from analytics-4 to ads.
 *
 * @param {*} value Ads Conversion Tracking ID to test.
 * @return {boolean} Whether or not the given ID is valid.
 */
function isValidConversionID(value) {
  return typeof value === 'string' && value !== '' && /^AW-[0-9]+$/.test(value);
}

/**
 * Checks if the given paxConversionID ID is valid.
 *
 * @since 1.126.0
 *
 * @param {*} value Ads Conversion Tracking ID to test.
 * @return {boolean} Whether or not the given ID is valid.
 */
function isValidPaxConversionID(value) {
  return typeof value === 'string' && value !== '' && /^AW-[0-9]+$/.test(value);
}

/**
 * Checks if the given extCustomerID ID is valid.
 *
 * @since 1.126.0
 *
 * @param {*} value PAX external customer ID to test.
 * @return {boolean} Whether or not the given ID is valid.
 */
function isValidExtCustomerID(value) {
  return typeof value === 'string';
}

/***/ }),

/***/ "./js/modules/analytics-4/components/DashboardMainEffectComponent.js":
/*!***************************************************************************!*\
  !*** ./js/modules/analytics-4/components/DashboardMainEffectComponent.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ DashboardMainEffectComponent)
/* harmony export */ });
/* harmony import */ var _js_modules_analytics_4_hooks_useCreateCustomDimensionForAudienceEffect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/modules/analytics-4/hooks/useCreateCustomDimensionForAudienceEffect */ "./js/modules/analytics-4/hooks/useCreateCustomDimensionForAudienceEffect.js");
/* harmony import */ var _js_modules_analytics_4_hooks_useCreateCustomDimensionsEffect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/modules/analytics-4/hooks/useCreateCustomDimensionsEffect */ "./js/modules/analytics-4/hooks/useCreateCustomDimensionsEffect.js");
/* harmony import */ var _js_modules_analytics_4_hooks_useSyncGoogleTagEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/hooks/useSyncGoogleTagEffect */ "./js/modules/analytics-4/hooks/useSyncGoogleTagEffect.js");
/**
 * DashboardMainEffectComponent component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */



function DashboardMainEffectComponent() {
  (0,_js_modules_analytics_4_hooks_useCreateCustomDimensionForAudienceEffect__WEBPACK_IMPORTED_MODULE_0__["default"])();
  (0,_js_modules_analytics_4_hooks_useCreateCustomDimensionsEffect__WEBPACK_IMPORTED_MODULE_1__["default"])();
  (0,_js_modules_analytics_4_hooks_useSyncGoogleTagEffect__WEBPACK_IMPORTED_MODULE_2__["default"])();
  return null;
}

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceAreaFooter.js":
/*!*************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceAreaFooter.js ***!
  \*************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AudienceAreaFooter)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_components_SourceLink__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/SourceLink */ "./js/components/SourceLink.tsx");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AudienceAreaFooter component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */








function AudienceAreaFooter() {
  const viewOnlyDashboard = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_7__["default"])();
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.DATE_RANGE_OFFSET
  }));
  const sourceLinkURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    if (viewOnlyDashboard) {
      return null;
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getServiceReportURL('audiences', {
      dates
    });
  });
  const isAnalyticsConnected = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_MODULES).isModuleConnected(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_4__.MODULE_SLUG_ANALYTICS_4));
  if (!isAnalyticsConnected) {
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_js_components_SourceLink__WEBPACK_IMPORTED_MODULE_6__["default"], {
    className: "googlesitekit-audience-widget__source",
    name: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__._x)('Analytics', 'Service name', 'google-site-kit'),
    href: sourceLinkURL,
    external: true
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceErrorModal.js":
/*!*************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceErrorModal.js ***!
  \*************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AudienceErrorModal)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_components_RefocusableModalDialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/components/RefocusableModalDialog */ "./js/components/RefocusableModalDialog.js");
/* harmony import */ var _js_components_Portal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/Portal */ "./js/components/Portal.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_util_errors__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util/errors */ "./js/util/errors.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Audience Segmentation AudienceErrorModal component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */









function AudienceErrorModal({
  apiErrors,
  hasOAuthError,
  inProgress,
  title,
  description,
  trackEventCategory,
  onCancel = () => {},
  onRetry = () => {}
}) {
  const errors = Array.isArray(apiErrors) ? apiErrors : [apiErrors];
  const helpLink = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_SITE).getErrorTroubleshootingLinkURL({
    code: 'analytics-4_insufficient_permissions'
  }));
  const requestAccessURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getServiceEntityAccessURL());
  const errorTroubleshootingLinkURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_SITE).getErrorTroubleshootingLinkURL({
    code: 'access_denied'
  }));
  if (!errors.length && !hasOAuthError) {
    return null;
  }
  const hasInsufficientPermissionsError = errors.some(error => (0,_js_util_errors__WEBPACK_IMPORTED_MODULE_7__.isInsufficientPermissionsError)(error));
  function handleConfirm() {
    let action;
    if (hasOAuthError) {
      action = 'auth_error_retry';
    } else if (hasInsufficientPermissionsError) {
      action = 'insufficient_permissions_error_request_access';
    } else {
      action = 'setup_error_retry';
    }
    (0,_js_util__WEBPACK_IMPORTED_MODULE_8__.trackEvent)(trackEventCategory, action).finally(() => {
      if (!hasInsufficientPermissionsError) {
        onRetry();
      }
    });
  }
  function handleCancel() {
    let action;
    if (hasOAuthError) {
      action = 'auth_error_cancel';
    } else if (hasInsufficientPermissionsError) {
      action = 'insufficient_permissions_error_cancel';
    } else {
      action = 'setup_error_cancel';
    }
    (0,_js_util__WEBPACK_IMPORTED_MODULE_8__.trackEvent)(trackEventCategory, action).finally(onCancel);
  }
  let errorTitle, errorDescription, confirmButton, buttonLink;
  if (hasOAuthError) {
    errorTitle = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Analytics update failed', 'google-site-kit');
    errorDescription = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_10__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Setup was interrupted because you did not grant the necessary permissions. <HelpLink />', 'google-site-kit'), {
      HelpLink: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_2__["default"], {
        href: errorTroubleshootingLinkURL,
        external: true,
        hideExternalIndicator: true,
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Get help', 'google-site-kit')
      })
    });
    confirmButton = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Retry', 'google-site-kit');
  } else if (hasInsufficientPermissionsError) {
    errorTitle = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Insufficient permissions', 'google-site-kit');
    errorDescription = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_10__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You’ll need to contact your administrator. Trouble getting access? <HelpLink />', 'google-site-kit'), {
      HelpLink: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_2__["default"], {
        href: helpLink,
        external: true,
        hideExternalIndicator: true,
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Get help', 'google-site-kit')
      })
    });
    confirmButton = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Request access', 'google-site-kit');
    buttonLink = requestAccessURL;
  } else {
    errorTitle = title || (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Failed to set up visitor groups', 'google-site-kit');
    errorDescription = description || (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Oops! Something went wrong. Retry enabling groups.', 'google-site-kit');
    confirmButton = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Retry', 'google-site-kit');
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_components_Portal__WEBPACK_IMPORTED_MODULE_4__["default"], {
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_components_RefocusableModalDialog__WEBPACK_IMPORTED_MODULE_3__["default"], {
      buttonLink: buttonLink,
      title: errorTitle,
      subtitle: errorDescription,
      handleConfirm: handleConfirm,
      confirmButton: confirmButton,
      handleCancel: handleCancel,
      onOpen: () => {
        let action;
        if (hasOAuthError) {
          action = 'auth_error';
        } else if (hasInsufficientPermissionsError) {
          action = 'insufficient_permissions_error';
        } else {
          action = 'setup_error';
        }
        (0,_js_util__WEBPACK_IMPORTED_MODULE_8__.trackEvent)(trackEventCategory, action);
      },
      onClose: onCancel,
      inProgress: inProgress,
      refocusQuerySelector: "#audience_segmentation_setup_cta-notification .googlesitekit-banner__cta",
      danger: true,
      dialogActive: true
    })
  });
}
AudienceErrorModal.propTypes = {
  apiErrors: prop_types__WEBPACK_IMPORTED_MODULE_11___default().oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_11___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_11___default().object)), (prop_types__WEBPACK_IMPORTED_MODULE_11___default().object), (prop_types__WEBPACK_IMPORTED_MODULE_11___default().array)]),
  hasOAuthError: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().bool),
  inProgress: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().bool),
  title: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().string),
  description: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().string),
  trackEventCategory: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().string),
  onCancel: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().func),
  onRetry: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().func)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationErrorWidget/ErrorWidgetContent.js":
/*!*********************************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationErrorWidget/ErrorWidgetContent.js ***!
  \*********************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_material_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/material-components */ "./js/material-components/index.js");
/* harmony import */ var _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/hooks/useBreakpoint */ "./js/hooks/useBreakpoint.ts");
/* harmony import */ var _svg_graphics_audience_segmentation_error_full_width_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/svg/graphics/audience-segmentation-error-full-width.svg */ "./svg/graphics/audience-segmentation-error-full-width.svg");
/* harmony import */ var _js_util_errors__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util/errors */ "./js/util/errors.js");
/* harmony import */ var _js_components_Typography__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/Typography */ "./js/components/Typography/index.js");
/* harmony import */ var _ErrorWidgetDetails__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ErrorWidgetDetails */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationErrorWidget/ErrorWidgetDetails.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * ErrorWidgetContent component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */







const ErrorWidgetContent = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.forwardRef)(({
  Widget,
  errors,
  onRetry,
  onRequestAccess,
  showRetryButton,
  failedAudiences
}, ref) => {
  const breakpoint = (0,_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_2__.useBreakpoint)();
  const isMobileBreakpoint = breakpoint === _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_2__.BREAKPOINT_SMALL;
  const isTabletBreakpoint = breakpoint === _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_2__.BREAKPOINT_TABLET;
  const hasInsufficientPermissionsError = errors.some(_js_util_errors__WEBPACK_IMPORTED_MODULE_4__.isInsufficientPermissionsError);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(Widget, {
    ref: ref,
    className: "googlesitekit-audience-segmentation-error-widget",
    noPadding: true,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_js_material_components__WEBPACK_IMPORTED_MODULE_1__.Grid, {
      className: "googlesitekit-audience-segmentation-error__widget-primary-cell",
      collapsed: true,
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(_js_material_components__WEBPACK_IMPORTED_MODULE_1__.Row, {
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(_js_material_components__WEBPACK_IMPORTED_MODULE_1__.Cell, {
          smSize: 6,
          mdSize: 8,
          lgSize: 7,
          children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_5__["default"], {
            as: "h3",
            type: "title",
            size: "large",
            children: hasInsufficientPermissionsError ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Insufficient permissions', 'google-site-kit') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Your visitor groups data loading failed', 'google-site-kit')
          }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", {
            className: "googlesitekit-widget-audience-segmentation-error__actions",
            children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_ErrorWidgetDetails__WEBPACK_IMPORTED_MODULE_6__["default"], {
              failedAudiences: failedAudiences,
              showRetryButton: showRetryButton,
              onRetry: onRetry,
              onRequestAccess: onRequestAccess,
              errors: errors,
              hasInsufficientPermissionsError: hasInsufficientPermissionsError
            })
          })]
        }), !isMobileBreakpoint && !isTabletBreakpoint && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_js_material_components__WEBPACK_IMPORTED_MODULE_1__.Cell, {
          className: "googlesitekit-widget-audience-segmentation-error__svg-wrapper",
          smSize: 6,
          mdSize: 3,
          lgSize: 5,
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_svg_graphics_audience_segmentation_error_full_width_svg__WEBPACK_IMPORTED_MODULE_3__["default"], {
            width: "233px"
          })
        }), isTabletBreakpoint && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_js_material_components__WEBPACK_IMPORTED_MODULE_1__.Cell, {
          className: "googlesitekit-widget-audience-segmentation-error__svg-wrapper",
          mdSize: 8,
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_svg_graphics_audience_segmentation_error_full_width_svg__WEBPACK_IMPORTED_MODULE_3__["default"], {
            width: "233px"
          })
        }), isMobileBreakpoint && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_js_material_components__WEBPACK_IMPORTED_MODULE_1__.Cell, {
          className: "googlesitekit-widget-audience-segmentation-error__svg-wrapper",
          smSize: 8,
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_svg_graphics_audience_segmentation_error_full_width_svg__WEBPACK_IMPORTED_MODULE_3__["default"], {
            width: "233px"
          })
        })]
      })
    })
  });
});
ErrorWidgetContent.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().elementType).isRequired,
  errors: prop_types__WEBPACK_IMPORTED_MODULE_9___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_9___default().object)).isRequired,
  onRetry: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().func).isRequired,
  onRequestAccess: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().func).isRequired,
  showRetryButton: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().bool),
  failedAudiences: prop_types__WEBPACK_IMPORTED_MODULE_9___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_9___default().string))
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ErrorWidgetContent);

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationErrorWidget/ErrorWidgetDetails.js":
/*!*********************************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationErrorWidget/ErrorWidgetDetails.js ***!
  \*********************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ ErrorWidgetDetails)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_components_Typography_P__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/Typography/P */ "./js/components/Typography/P.js");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_components_ReportErrorActions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/components/ReportErrorActions */ "./js/components/ReportErrorActions.js");
/* harmony import */ var _js_modules_analytics_4_components_audience_segmentation_dashboard_GetHelpLink__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/components/audience-segmentation/dashboard/GetHelpLink */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/GetHelpLink.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * ErrorWidgetDetails component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */





function ErrorWidgetDetails({
  failedAudiences,
  showRetryButton,
  onRetry,
  onRequestAccess,
  errors,
  hasInsufficientPermissionsError
}) {
  if (failedAudiences?.length) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_1__["default"], {
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Failed to create the following audiences:', 'google-site-kit')
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("ul", {
        className: "googlesitekit-widget-audience-segmentation-error__failed-audiences",
        children: failedAudiences.map(audience => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("li", {
          children: audience
        }, audience))
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.Button, {
        onClick: onRetry,
        danger: true,
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Retry', 'google-site-kit')
      })]
    });
  }
  if (showRetryButton && onRetry) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.Button, {
      onClick: onRetry,
      danger: true,
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Retry', 'google-site-kit')
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_ReportErrorActions__WEBPACK_IMPORTED_MODULE_3__["default"], {
    moduleSlug: "analytics-4",
    error: errors,
    GetHelpLink: hasInsufficientPermissionsError ? _js_modules_analytics_4_components_audience_segmentation_dashboard_GetHelpLink__WEBPACK_IMPORTED_MODULE_4__["default"] : undefined,
    hideGetHelpLink: !hasInsufficientPermissionsError,
    buttonVariant: "danger",
    getHelpClassName: "googlesitekit-error-retry-text",
    onRetry: onRetry,
    onRequestAccess: onRequestAccess
  });
}
ErrorWidgetDetails.propTypes = {
  errors: prop_types__WEBPACK_IMPORTED_MODULE_6___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_6___default().object)).isRequired,
  onRetry: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().func).isRequired,
  onRequestAccess: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().func).isRequired,
  showRetryButton: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().bool),
  failedAudiences: prop_types__WEBPACK_IMPORTED_MODULE_6___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_6___default().string)),
  hasInsufficientPermissionsError: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().bool)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationErrorWidget/index.js":
/*!********************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationErrorWidget/index.js ***!
  \********************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_13__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_util_errors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/util/errors */ "./js/util/errors.js");
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_modules_analytics_4_components_audience_segmentation_dashboard_InfoNoticeWidget_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/components/audience-segmentation/dashboard/InfoNoticeWidget/constants */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/InfoNoticeWidget/constants.js");
/* harmony import */ var _ErrorWidgetContent__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ErrorWidgetContent */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationErrorWidget/ErrorWidgetContent.js");
/* harmony import */ var _js_util_withIntersectionObserver__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util/withIntersectionObserver */ "./js/util/withIntersectionObserver.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AudienceSegmentationErrorWidget component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */











const ErrorWidgetContentWithIntersectionObserver = (0,_js_util_withIntersectionObserver__WEBPACK_IMPORTED_MODULE_7__["default"])(_ErrorWidgetContent__WEBPACK_IMPORTED_MODULE_6__["default"]);
function AudienceSegmentationErrorWidget({
  Widget,
  errors,
  onRetry,
  showRetryButton,
  failedAudiences
}) {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_9__["default"])();
  const {
    setValue
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_UI);
  const errorsArray = errors ? (0,lodash__WEBPACK_IMPORTED_MODULE_0__.castArray)(errors) : [];
  const hasInsufficientPermissionsError = errorsArray.some(_js_util_errors__WEBPACK_IMPORTED_MODULE_3__.isInsufficientPermissionsError);
  function handleRetry() {
    (0,_js_util__WEBPACK_IMPORTED_MODULE_8__.trackEvent)(`${viewContext}_audiences-all-tiles`, 'data_loading_error_retry').finally(() => {
      setValue(_js_modules_analytics_4_components_audience_segmentation_dashboard_InfoNoticeWidget_constants__WEBPACK_IMPORTED_MODULE_5__.AUDIENCE_INFO_NOTICE_HIDE_UI, false);
      onRetry?.();
    });
  }
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_12__.useEffect)(() => {
    // Set UI key to hide the info notice.
    setValue(_js_modules_analytics_4_components_audience_segmentation_dashboard_InfoNoticeWidget_constants__WEBPACK_IMPORTED_MODULE_5__.AUDIENCE_INFO_NOTICE_HIDE_UI, true);
  }, [setValue]);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(ErrorWidgetContentWithIntersectionObserver, {
    Widget: Widget,
    errors: errorsArray,
    onRetry: handleRetry,
    failedAudiences: failedAudiences,
    onRequestAccess: () => {
      (0,_js_util__WEBPACK_IMPORTED_MODULE_8__.trackEvent)(`${viewContext}_audiences-all-tiles`, 'insufficient_permissions_error_request_access');
    },
    showRetryButton: showRetryButton,
    onInView: () => {
      const action = hasInsufficientPermissionsError ? 'insufficient_permissions_error' : 'data_loading_error';
      (0,_js_util__WEBPACK_IMPORTED_MODULE_8__.trackEvent)(`${viewContext}_audiences-all-tiles`, action);
    }
  });
}
AudienceSegmentationErrorWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().elementType).isRequired,
  errors: prop_types__WEBPACK_IMPORTED_MODULE_13___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_13___default().object), prop_types__WEBPACK_IMPORTED_MODULE_13___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_13___default().object))]).isRequired,
  onRetry: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().func),
  showRetryButton: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().bool),
  failedAudiences: prop_types__WEBPACK_IMPORTED_MODULE_13___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_13___default().string))
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_1__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_10__.MODULE_SLUG_ANALYTICS_4
})(AudienceSegmentationErrorWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationIntroductoryOverlayNotification.js":
/*!**********************************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationIntroductoryOverlayNotification.js ***!
  \**********************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   AUDIENCE_SEGMENTATION_INTRODUCTORY_OVERLAY_NOTIFICATION: () => (/* binding */ AUDIENCE_SEGMENTATION_INTRODUCTORY_OVERLAY_NOTIFICATION),
/* harmony export */   "default": () => (/* binding */ AudienceSegmentationIntroductoryOverlayNotification)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _svg_graphics_audience_segmentation_introductory_graphic_desktop_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/svg/graphics/audience-segmentation-introductory-graphic-desktop.svg */ "./svg/graphics/audience-segmentation-introductory-graphic-desktop.svg");
/* harmony import */ var _svg_graphics_audience_segmentation_introductory_graphic_mobile_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/svg/graphics/audience-segmentation-introductory-graphic-mobile.svg */ "./svg/graphics/audience-segmentation-introductory-graphic-mobile.svg");
/* harmony import */ var _js_googlesitekit_notifications_components_layout_OverlayNotification__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/notifications/components/layout/OverlayNotification */ "./js/googlesitekit/notifications/components/layout/OverlayNotification.js");
/* harmony import */ var _js_util_scroll__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/util/scroll */ "./js/util/scroll.js");
/* harmony import */ var _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/hooks/useBreakpoint */ "./js/hooks/useBreakpoint.ts");
/* harmony import */ var _js_googlesitekit_notifications_datastore_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/googlesitekit/notifications/datastore/constants */ "./js/googlesitekit/notifications/datastore/constants.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AudienceSegmentationIntroductoryOverlayNotification component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */









const AUDIENCE_SEGMENTATION_INTRODUCTORY_OVERLAY_NOTIFICATION = 'audienceSegmentationIntroductoryOverlayNotification';
function AudienceSegmentationIntroductoryOverlayNotification({
  id,
  Notification
}) {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_8__["default"])();
  const breakpoint = (0,_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_6__.useBreakpoint)();
  const {
    dismissNotification
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_notifications_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.CORE_NOTIFICATIONS);
  function scrollToWidgetAndDismissNotification(event) {
    event.preventDefault();
    const widgetAreaClass = '.googlesitekit-widget-area--mainDashboardTrafficAudienceSegmentation';
    setTimeout(() => {
      __webpack_require__.g.scrollTo({
        top: (0,_js_util_scroll__WEBPACK_IMPORTED_MODULE_5__.getNavigationalScrollTop)(widgetAreaClass, breakpoint),
        behavior: 'smooth'
      });
    }, 0);
    dismissNotification(id);
  }
  const gaTrackingEventArgs = {
    category: `${viewContext}_audiences-secondary-user-intro`
  };
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(Notification, {
    gaTrackingEventArgs: gaTrackingEventArgs,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_googlesitekit_notifications_components_layout_OverlayNotification__WEBPACK_IMPORTED_MODULE_4__["default"], {
      notificationID: id,
      title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('New! Visitor groups', 'google-site-kit'),
      description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You can now learn more about your site visitor groups by comparing different metrics.', 'google-site-kit'),
      GraphicDesktop: _svg_graphics_audience_segmentation_introductory_graphic_desktop_svg__WEBPACK_IMPORTED_MODULE_2__["default"],
      GraphicMobile: _svg_graphics_audience_segmentation_introductory_graphic_mobile_svg__WEBPACK_IMPORTED_MODULE_3__["default"],
      ctaButton: {
        label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Show me', 'google-site-kit'),
        onClick: scrollToWidgetAndDismissNotification
      },
      dismissButton: {
        label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Got it', 'google-site-kit')
      },
      gaTrackingEventArgs: gaTrackingEventArgs
    })
  });
}
AudienceSegmentationIntroductoryOverlayNotification.propTypes = {
  id: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().string).isRequired,
  Notification: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().elementType).isRequired
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationSetupCTABanner.js":
/*!*****************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationSetupCTABanner.js ***!
  \*****************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   AUDIENCE_SEGMENTATION_SETUP_CTA_NOTIFICATION: () => (/* binding */ AUDIENCE_SEGMENTATION_SETUP_CTA_NOTIFICATION),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_23__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! @wordpress/compose */ "../node_modules/@wordpress/compose/build-module/higher-order/compose.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_notifications_datastore_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/notifications/datastore/constants */ "./js/googlesitekit/notifications/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/notifications/constants */ "./js/googlesitekit/notifications/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_components_AdminScreenTooltip__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/components/AdminScreenTooltip */ "./js/components/AdminScreenTooltip/index.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_modules_analytics_4_hooks_useEnableAudienceGroup__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/modules/analytics-4/hooks/useEnableAudienceGroup */ "./js/modules/analytics-4/hooks/useEnableAudienceGroup.js");
/* harmony import */ var _js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceErrorModal__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceErrorModal */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceErrorModal.js");
/* harmony import */ var _js_googlesitekit_notifications_components_layout_SetupCTA__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/js/googlesitekit/notifications/components/layout/SetupCTA */ "./js/googlesitekit/notifications/components/layout/SetupCTA.js");
/* harmony import */ var _svg_graphics_banner_audience_segmentation_setup_cta_svg_url__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/svg/graphics/banner-audience-segmentation-setup-cta.svg?url */ "./svg/graphics/banner-audience-segmentation-setup-cta.svg?url");
/* harmony import */ var _svg_graphics_banner_audience_segmentation_setup_cta_mobile_svg_url__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/svg/graphics/banner-audience-segmentation-setup-cta-mobile.svg?url */ "./svg/graphics/banner-audience-segmentation-setup-cta-mobile.svg?url");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _js_googlesitekit_widgets_util__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @/js/googlesitekit/widgets/util */ "./js/googlesitekit/widgets/util/index.js");
/* harmony import */ var _AudienceSegmentationSetupSuccessSubtleNotification__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./AudienceSegmentationSetupSuccessSubtleNotification */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationSetupSuccessSubtleNotification.js");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AudienceSegmentationSetupCTABanner component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */





















const AUDIENCE_SEGMENTATION_SETUP_CTA_NOTIFICATION = 'audience_segmentation_setup_cta-notification';
function AudienceSegmentationSetupCTABanner({
  id,
  Notification
}) {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_8__["default"])();
  const trackEventCategory = `${viewContext}_audiences-setup-cta-dashboard`;
  const {
    dismissNotification,
    registerNotification,
    pinNotification
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_notifications_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_NOTIFICATIONS);
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_FORMS);
  const tooltipSettings = {
    tooltipSlug: id,
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You can always enable groups in Settings later', 'google-site-kit'),
    content: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('The visitors group section will be added to your dashboard once you set it up.', 'google-site-kit'),
    dismissLabel: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Got it', 'google-site-kit')
  };
  const showTooltip = (0,_js_components_AdminScreenTooltip__WEBPACK_IMPORTED_MODULE_9__.useShowTooltip)(tooltipSettings);
  const isDismissalFinal = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_notifications_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_NOTIFICATIONS).isNotificationDismissalFinal(id));
  const autoSubmit = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_20__["default"])(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.AUDIENCE_SEGMENTATION_SETUP_FORM, 'autoSubmit');
  const [showErrorModal, setShowErrorModal] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_22__.useState)(false);
  const onSuccess = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_22__.useCallback)(() => {
    registerNotification(_AudienceSegmentationSetupSuccessSubtleNotification__WEBPACK_IMPORTED_MODULE_19__.AUDIENCE_SEGMENTATION_SETUP_SUCCESS_NOTIFICATION, {
      Component: _AudienceSegmentationSetupSuccessSubtleNotification__WEBPACK_IMPORTED_MODULE_19__["default"],
      areaSlug: _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_6__.NOTIFICATION_AREAS.DASHBOARD_TOP
    });
    dismissNotification(id);
  }, [registerNotification, dismissNotification, id]);
  const onError = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_22__.useCallback)(() => {
    setShowErrorModal(true);
  }, [setShowErrorModal]);
  const onOAuthNavigation = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_22__.useCallback)(() => pinNotification(id, _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_6__.NOTIFICATION_GROUPS.SETUP_CTAS), [id, pinNotification]);
  const {
    apiErrors,
    failedAudiences,
    isSaving,
    onEnableGroups
  } = (0,_js_modules_analytics_4_hooks_useEnableAudienceGroup__WEBPACK_IMPORTED_MODULE_11__["default"])({
    onSuccess,
    onError,
    onOAuthNavigation
  });
  const {
    clearPermissionScopeError
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER);
  const {
    setSetupErrorCode
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_SITE);
  const onCancel = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_22__.useCallback)(() => {
    setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.AUDIENCE_SEGMENTATION_SETUP_FORM, {
      autoSubmit: false
    });
    clearPermissionScopeError();
    setSetupErrorCode(null);
    setShowErrorModal(false);
  }, [clearPermissionScopeError, setSetupErrorCode, setValues]);
  const setupErrorCode = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_SITE).getSetupErrorCode());
  const learnMoreLink = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_SITE).getDocumentationLinkURL('visitor-groups'));
  const hasOAuthError = autoSubmit && setupErrorCode === 'access_denied';
  const gaTrackingProps = {
    gaTrackingEventArgs: {
      category: trackEventCategory
    }
  };
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_21__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_22__.Fragment, {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_21__.jsx)(Notification, {
      ...gaTrackingProps,
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_21__.jsx)(_js_googlesitekit_notifications_components_layout_SetupCTA__WEBPACK_IMPORTED_MODULE_13__["default"], {
        notificationID: id,
        title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Learn how different types of visitors interact with your site', 'google-site-kit'),
        description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Understand what brings new visitors to your site and keeps them coming back. Site Kit can now group your site visitors into relevant segments like "new" and "returning". To set up these new groups, Site Kit needs to update your Google Analytics property.', 'google-site-kit'),
        learnMoreLink: {
          href: learnMoreLink
        },
        ctaButton: {
          label: isSaving ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Enabling groups', 'google-site-kit') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Enable groups', 'google-site-kit'),
          onClick: onEnableGroups,
          disabled: isSaving,
          inProgress: isSaving
        },
        dismissButton: {
          label: isDismissalFinal ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Don’t show again', 'google-site-kit') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Maybe later', 'google-site-kit'),
          onClick: showTooltip,
          disabled: isSaving,
          dismissOptions: {
            expiresInSeconds: isDismissalFinal ? 0 : 2 * _js_util__WEBPACK_IMPORTED_MODULE_10__.WEEK_IN_SECONDS
          }
        },
        svg: {
          desktop: _svg_graphics_banner_audience_segmentation_setup_cta_svg_url__WEBPACK_IMPORTED_MODULE_14__["default"],
          mobile: _svg_graphics_banner_audience_segmentation_setup_cta_mobile_svg_url__WEBPACK_IMPORTED_MODULE_15__["default"],
          verticalPosition: 'bottom'
        },
        gaTrackingEventArgs: {
          category: trackEventCategory
        }
      })
    }), (showErrorModal || hasOAuthError) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_21__.jsx)(_js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceErrorModal__WEBPACK_IMPORTED_MODULE_12__["default"], {
      hasOAuthError: hasOAuthError,
      apiErrors: apiErrors.length ? apiErrors : failedAudiences,
      onRetry: onEnableGroups,
      inProgress: isSaving,
      onCancel: hasOAuthError ? onCancel : () => setShowErrorModal(false),
      trackEventCategory: `${viewContext}_audiences-setup`
    })]
  });
}
AudienceSegmentationSetupCTABanner.propTypes = {
  id: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().string),
  Notification: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().elementType)
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_wordpress_compose__WEBPACK_IMPORTED_MODULE_24__["default"])((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_17__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_16__.MODULE_SLUG_ANALYTICS_4
}), (0,_js_googlesitekit_widgets_util__WEBPACK_IMPORTED_MODULE_18__.withWidgetComponentProps)('audienceSegmentationSetupCTA'))(AudienceSegmentationSetupCTABanner));

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationSetupSuccessSubtleNotification.js":
/*!*********************************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationSetupSuccessSubtleNotification.js ***!
  \*********************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   AUDIENCE_SEGMENTATION_SETUP_SUCCESS_NOTIFICATION: () => (/* binding */ AUDIENCE_SEGMENTATION_SETUP_SUCCESS_NOTIFICATION),
/* harmony export */   "default": () => (/* binding */ AudienceSegmentationSetupSuccessSubtleNotification)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _js_googlesitekit_notifications_components_layout_NoticeNotification__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/notifications/components/layout/NoticeNotification */ "./js/googlesitekit/notifications/components/layout/NoticeNotification.js");
/* harmony import */ var _js_components_Notice_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/Notice/constants */ "./js/components/Notice/constants.js");
/* harmony import */ var _js_util_scroll__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/util/scroll */ "./js/util/scroll.js");
/* harmony import */ var _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/hooks/useBreakpoint */ "./js/hooks/useBreakpoint.ts");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _js_googlesitekit_notifications_datastore_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/notifications/datastore/constants */ "./js/googlesitekit/notifications/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AudienceSegmentationSetupSuccessSubtleNotification component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */








const AUDIENCE_SEGMENTATION_SETUP_SUCCESS_NOTIFICATION = 'setup-success-notification-audiences';
function AudienceSegmentationSetupSuccessSubtleNotification({
  id,
  Notification
}) {
  const breakpoint = (0,_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_4__.useBreakpoint)();
  const {
    dismissNotification
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_5__.useDispatch)(_js_googlesitekit_notifications_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_NOTIFICATIONS);
  const isAudienceSegmentationWidgetHidden = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_5__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_7__.CORE_USER).isAudienceSegmentationWidgetHidden());
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_9__.useEffect)(() => {
    if (isAudienceSegmentationWidgetHidden) {
      dismissNotification(AUDIENCE_SEGMENTATION_SETUP_SUCCESS_NOTIFICATION);
    }
  }, [dismissNotification, isAudienceSegmentationWidgetHidden]);
  function scrollToWidgetArea(event) {
    event.preventDefault();
    dismissNotification(AUDIENCE_SEGMENTATION_SETUP_SUCCESS_NOTIFICATION);
    setTimeout(() => {
      const widgetClass = '.googlesitekit-widget-area--mainDashboardTrafficAudienceSegmentation';
      __webpack_require__.g.scrollTo({
        top: (0,_js_util_scroll__WEBPACK_IMPORTED_MODULE_3__.getNavigationalScrollTop)(widgetClass, breakpoint),
        behavior: 'smooth'
      });
    }, 50);
  }
  if (isAudienceSegmentationWidgetHidden === undefined) {
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(Notification, {
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_js_googlesitekit_notifications_components_layout_NoticeNotification__WEBPACK_IMPORTED_MODULE_1__["default"], {
      notificationID: id,
      type: _js_components_Notice_constants__WEBPACK_IMPORTED_MODULE_2__.TYPES.SUCCESS,
      title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Success! Visitor groups added to your dashboard', 'google-site-kit'),
      description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Get to know how different types of visitors interact with your site, e.g. which pages they visit and for how long', 'google-site-kit'),
      ctaButton: {
        label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Show me', 'google-site-kit'),
        onClick: scrollToWidgetArea
      },
      dismissButton: true
    })
  });
}
AudienceSegmentationSetupSuccessSubtleNotification.propTypes = {
  id: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().string).isRequired,
  Notification: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().elementType).isRequired
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/AddGroupNotice.js":
/*!********************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/AddGroupNotice.js ***!
  \********************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AddGroupNotice)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _svg_icons_info_circle_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/svg/icons/info-circle.svg */ "./svg/icons/info-circle.svg");
/* harmony import */ var _js_modules_analytics_4_components_audience_segmentation_dashboard_InfoNotice__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/components/audience-segmentation/dashboard/InfoNotice */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/InfoNotice.js");
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Audience Selection Panel Add Group Notice
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */









function AddGroupNotice() {
  const [twoOrMoreAudiencesSelected, setTwoOrMoreAudiencesSelected] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_10__.useState)(false);
  const isDismissed = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).isItemDismissed(_constants__WEBPACK_IMPORTED_MODULE_2__.AUDIENCE_ADD_GROUP_NOTICE_SLUG));
  const isSelectionPanelOpen = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_UI).getValue(_constants__WEBPACK_IMPORTED_MODULE_2__.AUDIENCE_SELECTION_PANEL_OPENED_KEY));
  const isLoading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.MODULES_ANALYTICS_4).isFetchingSyncAvailableAudiences());
  const selectedAudiences = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_8__["default"])(_constants__WEBPACK_IMPORTED_MODULE_2__.AUDIENCE_SELECTION_FORM, _constants__WEBPACK_IMPORTED_MODULE_2__.AUDIENCE_SELECTED);
  const {
    dismissItem
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER);
  const onDismiss = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_10__.useCallback)(async () => {
    await dismissItem(_constants__WEBPACK_IMPORTED_MODULE_2__.AUDIENCE_ADD_GROUP_NOTICE_SLUG);
  }, [dismissItem]);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_10__.useEffect)(() => {
    if (!Array.isArray(selectedAudiences)) {
      return;
    }
    if (selectedAudiences.length > 1) {
      setTwoOrMoreAudiencesSelected(true);
    }

    // If selected items changed to only 1 or less selected audiences
    // reset the value. Otherwise `twoOrMoreAudiencesSelected` always remains `true`.
    // We are checking if selection panel is closed to do that, so notice is not re-surfaced
    // while selection panel is still open.
    if (!isSelectionPanelOpen && selectedAudiences?.length === 1) {
      setTwoOrMoreAudiencesSelected(false);
    }
  }, [selectedAudiences, isSelectionPanelOpen, setTwoOrMoreAudiencesSelected]);
  if (
  // Do not render the notice if the slection panel is dismissed.
  isDismissed ||
  // Has two or more audiences selected.
  twoOrMoreAudiencesSelected ||
  // Items are showing as preview blocks - re-syncing is still in progress.
  isLoading ||
  // There is no audience selected.
  !selectedAudiences?.length) {
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_modules_analytics_4_components_audience_segmentation_dashboard_InfoNotice__WEBPACK_IMPORTED_MODULE_5__["default"], {
    className: "googlesitekit-audience-selection-panel__add-group-notice",
    content: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('By adding another group to your dashboard, you will be able to compare them and understand which content brings back users from each group', 'google-site-kit'),
    dismissLabel: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Got it', 'google-site-kit'),
    Icon: _svg_icons_info_circle_svg__WEBPACK_IMPORTED_MODULE_4__["default"],
    onDismiss: onDismiss
  });
}
AddGroupNotice.propTypes = {
  savedItemSlugs: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().array)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/AudienceCreationErrorNotice.js":
/*!*********************************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/AudienceCreationErrorNotice.js ***!
  \*********************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AudienceCreationErrorNotice)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_14__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_util_errors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/util/errors */ "./js/util/errors.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_components_Notice__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/components/Notice */ "./js/components/Notice/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Audience Segmentation AudienceCreationErrorNotice component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */











function AudienceCreationErrorNotice({
  apiErrors,
  hasOAuthError
}) {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_2__["default"])();
  const errors = Array.isArray(apiErrors) ? apiErrors : [apiErrors];
  const helpLink = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_SITE).getErrorTroubleshootingLinkURL({
    code: 'analytics-4_insufficient_permissions'
  }));
  const requestAccessURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getServiceEntityAccessURL());
  const errorTroubleshootingLinkURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_SITE).getErrorTroubleshootingLinkURL({
    code: 'access_denied'
  }));
  const isOpen = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_7__.CORE_UI).getValue(_constants__WEBPACK_IMPORTED_MODULE_5__.AUDIENCE_SELECTION_PANEL_OPENED_KEY));
  const hasErrors = errors.length > 0;
  const hasInsufficientPermissionsError = errors.some(error => (0,_js_util_errors__WEBPACK_IMPORTED_MODULE_3__.isInsufficientPermissionsError)(error));

  // Track an event when the notice is viewed.
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_12__.useEffect)(() => {
    if (!isOpen || !hasErrors && !hasOAuthError) {
      return;
    }
    let event = 'setup_error';
    if (hasOAuthError) {
      event = 'auth_error';
    } else if (hasInsufficientPermissionsError) {
      event = 'insufficient_permissions_error';
    }
    (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.trackEvent)(`${viewContext}_audiences-sidebar-create-audiences`, event);
  }, [hasErrors, hasInsufficientPermissionsError, hasOAuthError, isOpen, viewContext]);
  if (!errors.length && !hasOAuthError) {
    return null;
  }
  let errorTitle, errorDescription;
  if (hasOAuthError) {
    errorDescription = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_13__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Setup was interrupted because you didn’t grant the necessary permissions. Click on Create again to retry. If that doesn’t work, <HelpLink />', 'google-site-kit'), {
      HelpLink: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_9__["default"], {
        href: errorTroubleshootingLinkURL,
        external: true,
        hideExternalIndicator: true,
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('get help', 'google-site-kit')
      })
    });
  } else if (hasInsufficientPermissionsError) {
    errorTitle = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Insufficient permissions', 'google-site-kit');
    errorDescription = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_13__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Contact your administrator. Trouble getting access? <HelpLink />', 'google-site-kit'), {
      HelpLink: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_9__["default"], {
        href: helpLink,
        external: true,
        hideExternalIndicator: true,
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Get help', 'google-site-kit')
      })
    });
  } else {
    errorTitle = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Analytics update failed', 'google-site-kit');
    errorDescription = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Click on Create to try again.', 'google-site-kit');
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_Notice__WEBPACK_IMPORTED_MODULE_10__["default"], {
    className: "googlesitekit-audience-creation-error-notice",
    type: _js_components_Notice__WEBPACK_IMPORTED_MODULE_10__["default"].TYPES.ERROR,
    title: errorTitle,
    description: errorDescription,
    ctaButton: hasInsufficientPermissionsError ? {
      label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Request access', 'google-site-kit'),
      href: requestAccessURL,
      onClick: () => {
        (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.trackEvent)(`${viewContext}_audiences-sidebar-create-audiences`, 'insufficient_permissions_error_request_access');
      }
    } : undefined,
    hideIcon: true
  });
}
AudienceCreationErrorNotice.propTypes = {
  apiErrors: prop_types__WEBPACK_IMPORTED_MODULE_14___default().oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_14___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_14___default().object)), (prop_types__WEBPACK_IMPORTED_MODULE_14___default().object), (prop_types__WEBPACK_IMPORTED_MODULE_14___default().array)]),
  hasOAuthError: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().bool)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/AudienceCreationNotice.js":
/*!****************************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/AudienceCreationNotice.js ***!
  \****************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AudienceCreationNotice)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @wordpress/url */ "../node_modules/@wordpress/url/build-module/add-query-args.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_util_errors__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/util/errors */ "./js/util/errors.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_googlesitekit_components_gm2_SpinnerButton__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/js/googlesitekit/components-gm2/SpinnerButton */ "./js/googlesitekit/components-gm2/SpinnerButton.js");
/* harmony import */ var _AudienceCreationErrorNotice__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./AudienceCreationErrorNotice */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/AudienceCreationErrorNotice.js");
/* harmony import */ var _js_components_Notice__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/js/components/Notice */ "./js/components/Notice/index.js");
/* harmony import */ var _js_components_Typography__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/js/components/Typography */ "./js/components/Typography/index.js");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Audience Selection Panel AudienceCreationNotice component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */

















function AudienceCreationNotice() {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_2__["default"])();
  const [isCreatingAudience, setIsCreatingAudience] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useState)(false);
  const siteKitConfigurableAudiences = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => {
    const {
      getConfigurableAudiences
    } = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_9__.MODULES_ANALYTICS_4);
    const audiences = getConfigurableAudiences();
    if (undefined === audiences) {
      return undefined;
    }
    if (!audiences.length) {
      return [];
    }
    return audiences.filter(({
      audienceType
    }) => audienceType === 'SITE_KIT_AUDIENCE');
  });
  const {
    dismissItem
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_7__.CORE_USER);
  const {
    setValue
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_8__.CORE_UI);
  const isItemDismissed = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_7__.CORE_USER).isItemDismissed(_constants__WEBPACK_IMPORTED_MODULE_4__.AUDIENCE_CREATION_NOTICE_SLUG));
  const isEditScopeNoticeDismissed = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_7__.CORE_USER).isItemDismissed(_constants__WEBPACK_IMPORTED_MODULE_4__.AUDIENCE_CREATION_EDIT_SCOPE_NOTICE_SLUG));
  const hasAnalytics4EditScope = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_7__.CORE_USER).hasScope(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_9__.EDIT_SCOPE));
  const isOpen = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_8__.CORE_UI).getValue(_constants__WEBPACK_IMPORTED_MODULE_4__.AUDIENCE_SELECTION_PANEL_OPENED_KEY));
  function onCloseClick() {
    dismissItem(_constants__WEBPACK_IMPORTED_MODULE_4__.AUDIENCE_CREATION_NOTICE_SLUG);
  }
  const redirectURL = (0,_wordpress_url__WEBPACK_IMPORTED_MODULE_19__.addQueryArgs)(__webpack_require__.g.location.href, {
    notification: 'audience_segmentation'
  });
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_FORMS);
  const {
    setPermissionScopeError
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_7__.CORE_USER);
  const {
    createAudience,
    syncAvailableAudiences
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_9__.MODULES_ANALYTICS_4);
  const isCreatingAudienceFromOAuth = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_16__["default"])(_constants__WEBPACK_IMPORTED_MODULE_4__.AUDIENCE_CREATION_FORM, 'autoSubmit');
  const failedAudienceToCreate = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_16__["default"])(_constants__WEBPACK_IMPORTED_MODULE_4__.AUDIENCE_CREATION_FORM, 'audienceToCreate');
  const [apiErrors, setApiErrors] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useState)([]);
  const handleCreateAudience = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useCallback)(async audienceSlug => {
    setIsCreatingAudience(audienceSlug);
    if (!hasAnalytics4EditScope) {
      setValues(_constants__WEBPACK_IMPORTED_MODULE_4__.AUDIENCE_CREATION_FORM, {
        autoSubmit: true,
        audienceToCreate: audienceSlug
      });

      // Set permission scope error to trigger OAuth flow.
      setPermissionScopeError({
        code: _js_util_errors__WEBPACK_IMPORTED_MODULE_10__.ERROR_CODE_MISSING_REQUIRED_SCOPE,
        message: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Additional permissions are required to create a new audience in Analytics.', 'google-site-kit'),
        data: {
          status: 403,
          scopes: [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_9__.EDIT_SCOPE],
          skipModal: true,
          redirectURL
        }
      });
      return;
    }
    setValues(_constants__WEBPACK_IMPORTED_MODULE_4__.AUDIENCE_CREATION_FORM, {
      autoSubmit: false,
      audienceToCreate: undefined
    });
    const {
      error
    } = await createAudience(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_9__.SITE_KIT_AUDIENCE_DEFINITIONS[audienceSlug]);
    if (!!error) {
      setApiErrors([error]);
    } else {
      setApiErrors([]);
    }
    await syncAvailableAudiences();
    setIsCreatingAudience(false);
    if (!error) {
      setValue(_constants__WEBPACK_IMPORTED_MODULE_4__.AUDIENCE_CREATION_SUCCESS_NOTICE_SLUG, true);
    }
  }, [hasAnalytics4EditScope, createAudience, syncAvailableAudiences, setValues, setPermissionScopeError, redirectURL, setValue]);
  function handleDismissEditScopeNotice() {
    (0,_js_util__WEBPACK_IMPORTED_MODULE_3__.trackEvent)(`${viewContext}_audiences-sidebar-create-audiences`, 'dismiss_oauth_notice').finally(() => {
      dismissItem(_constants__WEBPACK_IMPORTED_MODULE_4__.AUDIENCE_CREATION_EDIT_SCOPE_NOTICE_SLUG);
    });
  }
  const setupErrorCode = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_SITE).getSetupErrorCode());
  const hasOAuthError = isCreatingAudienceFromOAuth && setupErrorCode === 'access_denied';
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useEffect)(() => {
    async function createAudienceFromOAuth() {
      if (hasAnalytics4EditScope && isCreatingAudienceFromOAuth) {
        setValue(_constants__WEBPACK_IMPORTED_MODULE_4__.AUDIENCE_SELECTION_PANEL_OPENED_KEY, true);
        await handleCreateAudience(failedAudienceToCreate);
      }
    }
    createAudienceFromOAuth();
  }, [failedAudienceToCreate, handleCreateAudience, hasAnalytics4EditScope, isCreatingAudienceFromOAuth, setValue]);

  // Show the notice if the user has no site kit audiences, or has
  // created one, and the user has not dismissed it.
  const shouldShowNotice = !isItemDismissed && siteKitConfigurableAudiences?.length < 2;

  // Track an event when the notice is viewed.
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useEffect)(() => {
    if (isOpen && shouldShowNotice) {
      (0,_js_util__WEBPACK_IMPORTED_MODULE_3__.trackEvent)(`${viewContext}_audiences-sidebar-create-audiences`, 'view_notice');
    }
  }, [isOpen, shouldShowNotice, viewContext]);

  // Track an event when the OAuth notice is viewed.
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useEffect)(() => {
    if (isOpen && !hasAnalytics4EditScope && !isEditScopeNoticeDismissed) {
      (0,_js_util__WEBPACK_IMPORTED_MODULE_3__.trackEvent)(`${viewContext}_audiences-sidebar-create-audiences`, 'view_oauth_notice');
    }
  }, [hasAnalytics4EditScope, isEditScopeNoticeDismissed, isOpen, viewContext]);
  if (!shouldShowNotice) {
    return null;
  }
  const siteKitAvailableAudiences = Object.keys(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_9__.SITE_KIT_AUDIENCE_DEFINITIONS).filter(audienceSlug => !siteKitConfigurableAudiences.some(configuredAudience => configuredAudience.audienceSlug === audienceSlug));
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)("div", {
    className: "googlesitekit-audience-selection-panel__audience-creation-notice",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("div", {
      className: "googlesitekit-audience-selection-panel__audience-creation-notice-header",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("p", {
        className: "googlesitekit-audience-selection-panel__audience-creation-notice-title",
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Create groups suggested by Site Kit', 'google-site-kit')
      })
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)("div", {
      className: "googlesitekit-audience-selection-panel__audience-creation-notice-body",
      children: [siteKitAvailableAudiences && siteKitAvailableAudiences.map(audienceSlug => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)("div", {
        className: "googlesitekit-audience-selection-panel__audience-creation-notice-audience",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)("div", {
          className: "googlesitekit-audience-selection-panel__audience-creation-notice-audience-details",
          children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_15__["default"], {
            as: "h3",
            type: "title",
            size: "small",
            children: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_9__.SITE_KIT_AUDIENCE_DEFINITIONS[audienceSlug].displayName
          }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("p", {
            className: "googlesitekit-audience-selection-panel__audience-creation-notice-audience-description",
            children: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_9__.SITE_KIT_AUDIENCE_DEFINITIONS[audienceSlug].description
          })]
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("div", {
          className: "googlesitekit-audience-selection-panel__audience-creation-notice-audience-button",
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_googlesitekit_components_gm2_SpinnerButton__WEBPACK_IMPORTED_MODULE_12__["default"], {
            spinnerPosition: _js_googlesitekit_components_gm2_SpinnerButton__WEBPACK_IMPORTED_MODULE_12__.SPINNER_POSITION.BEFORE,
            onClick: () => {
              (0,_js_util__WEBPACK_IMPORTED_MODULE_3__.trackEvent)(`${viewContext}_audiences-sidebar-create-audiences`, 'create_audience', audienceSlug).finally(() => {
                handleCreateAudience(audienceSlug);
              });
            },
            isSaving: isCreatingAudience === audienceSlug,
            children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Create', 'google-site-kit')
          })
        })]
      }, audienceSlug)), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("div", {
        className: "googlesitekit-audience-selection-panel__audience-creation-notice-dismiss",
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_11__["default"], {
          onClick: onCloseClick,
          children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No thanks', 'google-site-kit')
        })
      })]
    }), !hasAnalytics4EditScope && !isEditScopeNoticeDismissed && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_components_Notice__WEBPACK_IMPORTED_MODULE_14__["default"], {
      type: _js_components_Notice__WEBPACK_IMPORTED_MODULE_14__["default"].TYPES.WARNING,
      description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Creating these groups require more data tracking. You will be directed to update your Analytics property.', 'google-site-kit'),
      dismissButton: {
        onClick: handleDismissEditScopeNotice
      },
      hideIcon: true
    }), (apiErrors.length > 0 || hasOAuthError) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_AudienceCreationErrorNotice__WEBPACK_IMPORTED_MODULE_13__["default"], {
      apiErrors: apiErrors,
      hasOAuthError: hasOAuthError
    })]
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/AudienceCreationSuccessNotice.js":
/*!***********************************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/AudienceCreationSuccessNotice.js ***!
  \***********************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AudienceCreationSuccessNotice)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _svg_icons_check_fill_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/svg/icons/check-fill.svg */ "./svg/icons/check-fill.svg");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Audience Creation Success Notice component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */








function AudienceCreationSuccessNotice() {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_2__["default"])();
  const {
    setValue
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_UI);
  const showSuccessNotice = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_UI).getValue(_constants__WEBPACK_IMPORTED_MODULE_4__.AUDIENCE_CREATION_SUCCESS_NOTICE_SLUG));
  const isOpen = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_UI).getValue(_constants__WEBPACK_IMPORTED_MODULE_4__.AUDIENCE_SELECTION_PANEL_OPENED_KEY));

  // Track an event when the notice is viewed.
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_9__.useEffect)(() => {
    if (isOpen && showSuccessNotice) {
      (0,_js_util__WEBPACK_IMPORTED_MODULE_3__.trackEvent)(`${viewContext}_audiences-sidebar-create-audiences-success`, 'view_notification');
    }
  }, [isOpen, showSuccessNotice, viewContext]);
  if (!showSuccessNotice) {
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)("div", {
    className: "googlesitekit-audience-selection-panel__success-notice",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("div", {
      className: "googlesitekit-audience-selection-panel__success-notice-icon",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_svg_icons_check_fill_svg__WEBPACK_IMPORTED_MODULE_7__["default"], {
        width: 24,
        height: 24
      })
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("p", {
      className: "googlesitekit-audience-selection-panel__success-notice-message",
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Visitor group created successfully!', 'google-site-kit')
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("div", {
      className: "googlesitekit-audience-selection-panel__success-notice-actions",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_6__.Button, {
        onClick: () => {
          (0,_js_util__WEBPACK_IMPORTED_MODULE_3__.trackEvent)(`${viewContext}_audiences-sidebar-create-audiences-success`, 'dismiss_notification').finally(() => {
            setValue(_constants__WEBPACK_IMPORTED_MODULE_4__.AUDIENCE_CREATION_SUCCESS_NOTICE_SLUG, false);
          });
        },
        tertiary: true,
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Got it', 'google-site-kit')
      })
    })]
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/AudienceItem.js":
/*!******************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/AudienceItem.js ***!
  \******************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AudienceItem)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_13__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_components_NewBadge__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/components/NewBadge */ "./js/components/NewBadge.js");
/* harmony import */ var _js_components_SelectionPanel__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/components/SelectionPanel */ "./js/components/SelectionPanel/index.js");
/* harmony import */ var _js_components_BadgeWithTooltip__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/components/BadgeWithTooltip */ "./js/components/BadgeWithTooltip.js");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Audience Selection Panel AudienceItem
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */











function AudienceItem({
  slug,
  title,
  description,
  subtitle,
  userCount,
  audienceType
}) {
  const newBadgeSlug = `${_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.AUDIENCE_ITEM_NEW_BADGE_SLUG_PREFIX}${slug}`;
  const selectedItems = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_10__["default"])(_constants__WEBPACK_IMPORTED_MODULE_2__.AUDIENCE_SELECTION_FORM, _constants__WEBPACK_IMPORTED_MODULE_2__.AUDIENCE_SELECTED);
  const hasNewBadgeBeenSeen = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER).hasExpirableItem(newBadgeSlug));
  const isNewBadgeActive = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER).isExpirableItemActive(newBadgeSlug));
  const [siteKitUserCountReportError, otherUserCountReportError] = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getAudienceUserCountReportErrors()) || [];
  const errors = [];
  if (otherUserCountReportError) {
    errors.push(otherUserCountReportError);
  }
  if (siteKitUserCountReportError) {
    errors.push(siteKitUserCountReportError);
  }
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_FORMS);
  const temporarilyHidden = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER).isItemDismissed(`audience-tile-${slug}`));
  const onCheckboxChange = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_12__.useCallback)(event => {
    setValues(_constants__WEBPACK_IMPORTED_MODULE_2__.AUDIENCE_SELECTION_FORM, {
      [_constants__WEBPACK_IMPORTED_MODULE_2__.AUDIENCE_SELECTED]: event.target.checked ? selectedItems.concat([slug]) : selectedItems.filter(selectedItem => selectedItem !== slug),
      [_constants__WEBPACK_IMPORTED_MODULE_2__.AUDIENCE_SELECTION_CHANGED]: true
    });
  }, [selectedItems, setValues, slug]);

  // Show the new badge if it has not been seen yet, or the badge has been
  // seen and is still active.
  const showNewBadge = 'DEFAULT_AUDIENCE' !== audienceType && (hasNewBadgeBeenSeen === false || isNewBadgeActive);
  const isItemSelected = selectedItems?.includes(slug);
  const id = `audience-selection-checkbox-${slug}`;
  function ItemBadge() {
    if (temporarilyHidden) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_BadgeWithTooltip__WEBPACK_IMPORTED_MODULE_9__["default"], {
        label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Temporarily hidden', 'google-site-kit'),
        tooltipTitle: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Site Kit is collecting data for this group. Once data is available the group will be added to your dashboard.', 'google-site-kit')
      });
    } else if (showNewBadge) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_NewBadge__WEBPACK_IMPORTED_MODULE_7__["default"], {});
    }
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_SelectionPanel__WEBPACK_IMPORTED_MODULE_8__.SelectionPanelItem, {
    id: id,
    slug: slug,
    title: title,
    subtitle: subtitle,
    description: description,
    isItemSelected: isItemSelected,
    onCheckboxChange: onCheckboxChange,
    suffix: errors.length ? '-' : (0,_js_util__WEBPACK_IMPORTED_MODULE_6__.numFmt)(userCount),
    badge: (temporarilyHidden || showNewBadge) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(ItemBadge, {})
  });
}
AudienceItem.propTypes = {
  slug: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().string).isRequired,
  title: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().string).isRequired,
  description: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().string).isRequired,
  subtitle: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().string),
  userCount: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().number).isRequired,
  audienceType: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().string).isRequired
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/AudienceItemPreviewBlock.js":
/*!******************************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/AudienceItemPreviewBlock.js ***!
  \******************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AudienceItemPreviewBlock)
/* harmony export */ });
/* harmony import */ var _js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/components/PreviewBlock */ "./js/components/PreviewBlock.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AudienceItemPreviewBlock component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */


function AudienceItemPreviewBlock() {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
    className: "googlesitekit-selection-panel__loading",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
      className: "googlesitekit-selection-panel__loading-left",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_0__["default"], {
        width: "90px",
        height: "20px",
        className: "googlesitekit-selection-panel__loading-item"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_0__["default"], {
        width: "293px",
        height: "15px",
        className: "googlesitekit-selection-panel__loading-item"
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
      className: "googlesitekit-selection-panel__loading-right",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_0__["default"], {
        width: "43px",
        height: "20px",
        className: "googlesitekit-selection-panel__loading-item"
      })
    })]
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/AudienceItems.js":
/*!*******************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/AudienceItems.js ***!
  \*******************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AudienceItems)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_16__);
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useDeepCompareEffect.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _AudienceItem__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./AudienceItem */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/AudienceItem.js");
/* harmony import */ var _js_components_SelectionPanel__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/components/SelectionPanel */ "./js/components/SelectionPanel/index.js");
/* harmony import */ var _AudienceItemPreviewBlock__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./AudienceItemPreviewBlock */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/AudienceItemPreviewBlock.js");
/* harmony import */ var _AddGroupNotice__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./AddGroupNotice */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/AddGroupNotice.js");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/* harmony import */ var _AudienceCreationNotice__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./AudienceCreationNotice */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/AudienceCreationNotice.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Audience Selection Panel Audience Items
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */













function AudienceItems({
  savedItemSlugs = []
}) {
  const [firstView, setFirstView] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_14__.useState)(true);
  const {
    setExpirableItemTimers
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER);
  const {
    syncAvailableAudiences
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4);
  const viewOnlyDashboard = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_11__["default"])();
  const isOpen = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_UI).getValue(_constants__WEBPACK_IMPORTED_MODULE_2__.AUDIENCE_SELECTION_PANEL_OPENED_KEY));
  const isLoading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).isFetchingSyncAvailableAudiences());
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_14__.useEffect)(() => {
    if (!firstView || !isOpen) {
      return;
    }
    async function syncAudiences() {
      await syncAvailableAudiences();
    }
    setFirstView(false);
    syncAudiences();
  }, [firstView, isOpen, syncAvailableAudiences]);
  const availableAudiences = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => {
    const {
      getConfigurableAudiences,
      getReport,
      getAudiencesUserCountReportOptions,
      getConfigurableSiteKitAndOtherAudiences,
      hasAudiencePartialData
    } = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4);
    const audiences = getConfigurableAudiences();
    if (undefined === audiences) {
      return undefined;
    }
    if (!audiences.length) {
      return [];
    }

    // eslint-disable-next-line @wordpress/no-unused-vars-before-return -- We might return before `otherAudiences` is used.
    const [siteKitAudiences, otherAudiences] = getConfigurableSiteKitAndOtherAudiences();
    const isSiteKitAudiencePartialData = hasAudiencePartialData(siteKitAudiences);
    const dateRangeDates = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER).getDateRangeDates({
      offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.DATE_RANGE_OFFSET
    });

    // Get the user count for the available Site Kit audiences using the `newVsReturning` dimension
    // to avoid the partial data state for these audiences.
    const newVsReturningReport = isSiteKitAudiencePartialData && getReport({
      ...dateRangeDates,
      metrics: [{
        name: 'totalUsers'
      }],
      dimensions: [{
        name: 'newVsReturning'
      }],
      reportID: 'audience-segmentation_audience-items_component_newVsReturningReport'
    });

    // Get the user count for the available audiences using the `audienceResourceName` dimension.
    const audienceResourceNameReport = isSiteKitAudiencePartialData === false || isSiteKitAudiencePartialData === true && otherAudiences?.length > 0 ? getReport(getAudiencesUserCountReportOptions(isSiteKitAudiencePartialData ? otherAudiences : audiences)) : {};
    const {
      rows: newVsReturningRows = []
    } = newVsReturningReport || {};
    const {
      rows: audienceResourceNameRows = []
    } = audienceResourceNameReport || {};
    function findAudienceRow(rows, dimensionValue) {
      return rows.find(row => row?.dimensionValues?.[0]?.value === dimensionValue);
    }
    return audiences.map(audience => {
      let audienceRow;
      if (audience.audienceType === 'SITE_KIT_AUDIENCE' && isSiteKitAudiencePartialData) {
        audienceRow = findAudienceRow(newVsReturningRows, audience.audienceSlug === 'new-visitors' ? 'new' : 'returning');
      } else {
        audienceRow = findAudienceRow(audienceResourceNameRows, audience.name);
      }
      return {
        ...audience,
        userCount: Number(audienceRow?.metricValues?.[0]?.value) || 0
      };
    });
  });
  function audiencesListReducer(acc, {
    audienceType,
    description,
    displayName,
    name,
    userCount
  }) {
    let citation = '';
    switch (audienceType) {
      case 'DEFAULT_AUDIENCE':
        citation = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Created by default by Google Analytics', 'google-site-kit');
        description = '';
        break;
      case 'SITE_KIT_AUDIENCE':
        citation = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Created by Site Kit', 'google-site-kit');
        break;
      case 'USER_AUDIENCE':
        citation = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Already exists in your Analytics property', 'google-site-kit');
        break;
    }
    return {
      ...acc,
      [name]: {
        title: displayName,
        subtitle: description,
        description: citation,
        userCount,
        audienceType
      }
    };
  }
  const availableSavedItems = availableAudiences?.filter(({
    name
  }) => savedItemSlugs.includes(name)).reduce(audiencesListReducer, {});
  const availableUnsavedItems = availableAudiences?.filter(({
    name
  }) => !savedItemSlugs.includes(name)).reduce(audiencesListReducer, {});
  const newBadgesToActivate = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    if (undefined === availableAudiences) {
      return undefined;
    }
    const {
      hasFinishedResolution,
      hasExpirableItem
    } = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER);
    if (!hasFinishedResolution('getExpirableItems')) {
      return undefined;
    }
    return availableAudiences.filter(({
      audienceType,
      name
    }) => {
      // Only activate if it is not a default audience, the badge is
      // new and the user is viewing it for the first time.
      return 'DEFAULT_AUDIENCE' !== audienceType && !hasExpirableItem(`${_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.AUDIENCE_ITEM_NEW_BADGE_SLUG_PREFIX}${name}`);
    }).map(({
      name
    }) => {
      return `${_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.AUDIENCE_ITEM_NEW_BADGE_SLUG_PREFIX}${name}`;
    });
  });

  // Set an expiry for the new badges so that it is no longer shown after
  // a certain time.
  // `useDeepCompareEffect` is used here instead of `useEffect` because
  // the array reference of `newBadgesToActivate` is not reliable and can
  // cause the effect to unexpectedly run multiple times.
  (0,react_use__WEBPACK_IMPORTED_MODULE_15__["default"])(() => {
    if (isOpen &&
    // Only activate when the badge is viewed, i.e. the panel is opened.
    newBadgesToActivate !== undefined && newBadgesToActivate.length) {
      setExpirableItemTimers(newBadgesToActivate.map(slug => ({
        slug,
        expiresInSeconds: _js_util__WEBPACK_IMPORTED_MODULE_6__.WEEK_IN_SECONDS * 4
      })));
    }
  }, [isOpen, setExpirableItemTimers, newBadgesToActivate]);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_js_components_SelectionPanel__WEBPACK_IMPORTED_MODULE_8__.SelectionPanelItems, {
    availableItemsTitle: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Additional groups', 'google-site-kit'),
    availableSavedItems: availableSavedItems,
    availableUnsavedItems: availableUnsavedItems,
    ItemComponent: isLoading ? _AudienceItemPreviewBlock__WEBPACK_IMPORTED_MODULE_9__["default"] : _AudienceItem__WEBPACK_IMPORTED_MODULE_7__["default"],
    savedItemSlugs: savedItemSlugs,
    notice: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_14__.Fragment, {
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_AddGroupNotice__WEBPACK_IMPORTED_MODULE_10__["default"], {}), !viewOnlyDashboard && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_AudienceCreationNotice__WEBPACK_IMPORTED_MODULE_12__["default"], {})]
    })
  });
}
AudienceItems.propTypes = {
  savedItemSlugs: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().array)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/Footer.js":
/*!************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/Footer.js ***!
  \************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Footer)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_components_SelectionPanel__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/components/SelectionPanel */ "./js/components/SelectionPanel/index.js");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Audience Selection Panel Footer
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */










function Footer({
  isOpen,
  closePanel,
  savedItemSlugs
}) {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_1__["default"])();
  const selectedItems = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_8__["default"])(_constants__WEBPACK_IMPORTED_MODULE_3__.AUDIENCE_SELECTION_FORM, _constants__WEBPACK_IMPORTED_MODULE_3__.AUDIENCE_SELECTED);
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_FORMS);
  const isSavingSettings = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER).isSavingUserAudienceSettings());
  const hiddenTileDismissedItems = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => {
    const dismissedItems = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER).getDismissedItems();
    return dismissedItems?.filter(item => item.startsWith('audience-tile-'));
  });
  const availableAudiences = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getOrSyncAvailableAudiences());
  const {
    saveUserAudienceSettings,
    removeDismissedItems
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER);
  const {
    getConfiguredAudiences
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER);
  const saveSettings = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_10__.useCallback)(async selectedAudiences => {
    setValues(_constants__WEBPACK_IMPORTED_MODULE_3__.AUDIENCE_SELECTION_FORM, {
      [_constants__WEBPACK_IMPORTED_MODULE_3__.AUDIENCE_SELECTION_DISMISSED_ITEMS_ERROR_SLUG]: null
    });
    let {
      error
    } = await saveUserAudienceSettings({
      configuredAudiences: selectedAudiences
    });
    if (!error) {
      // Determine the list of hidden audiences that have been unselected and need their dismissed state to be cleared.
      const hiddenAudienceDismissedItemsToClear = hiddenTileDismissedItems?.filter(item => {
        const audienceResourceName = item.replace('audience-tile-', '');
        return !selectedAudiences.includes(audienceResourceName);
      }) || [];

      // If all configured audiences are hidden, clear the dismissed state for the first one to unhide it
      if (selectedAudiences.every(audienceResourceName => hiddenTileDismissedItems?.includes(`audience-tile-${audienceResourceName}`))) {
        hiddenAudienceDismissedItemsToClear.push(`audience-tile-${selectedAudiences[0]}`);
      }
      if (hiddenAudienceDismissedItemsToClear?.length > 0) {
        ({
          error
        } = await removeDismissedItems(...hiddenAudienceDismissedItemsToClear));
        if (error) {
          setValues(_constants__WEBPACK_IMPORTED_MODULE_3__.AUDIENCE_SELECTION_FORM, {
            [_constants__WEBPACK_IMPORTED_MODULE_3__.AUDIENCE_SELECTION_DISMISSED_ITEMS_ERROR_SLUG]: error
          });
        }
      }
    }
    return {
      error
    };
  }, [hiddenTileDismissedItems, removeDismissedItems, saveUserAudienceSettings, setValues]);
  const onSaveSuccess = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_10__.useCallback)(() => {
    const audienceTypeLabels = {
      USER_AUDIENCE: 'user',
      SITE_KIT_AUDIENCE: 'site-kit',
      DEFAULT_AUDIENCE: 'default'
    };

    // Call to the selector within the callback ensures that the latest
    // value is used.
    const configuredAudiences = getConfiguredAudiences();
    const eventLabel = Object.keys(audienceTypeLabels).map(type => {
      const audiencesOfType = configuredAudiences.filter(audienceName => {
        const audience = availableAudiences?.find(({
          name
        }) => audienceName === name);
        return audience?.audienceType === type;
      });
      return `${audienceTypeLabels[type]}:${audiencesOfType.length}`;
    }).join(',');
    (0,_js_util__WEBPACK_IMPORTED_MODULE_2__.trackEvent)(`${viewContext}_audiences-sidebar`, 'audiences_sidebar_save', eventLabel);
  }, [availableAudiences, getConfiguredAudiences, viewContext]);
  const onCancel = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_10__.useCallback)(() => {
    (0,_js_util__WEBPACK_IMPORTED_MODULE_2__.trackEvent)(`${viewContext}_audiences-sidebar`, 'audiences_sidebar_cancel');
  }, [viewContext]);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_components_SelectionPanel__WEBPACK_IMPORTED_MODULE_7__.SelectionPanelFooter, {
    savedItemSlugs: savedItemSlugs,
    selectedItemSlugs: selectedItems,
    saveSettings: saveSettings,
    minSelectedItemCount: _constants__WEBPACK_IMPORTED_MODULE_3__.MIN_SELECTED_AUDIENCES_COUNT,
    maxSelectedItemCount: _constants__WEBPACK_IMPORTED_MODULE_3__.MAX_SELECTED_AUDIENCES_COUNT,
    isBusy: isSavingSettings,
    isOpen: isOpen,
    closePanel: closePanel,
    onSaveSuccess: onSaveSuccess,
    onCancel: onCancel
  });
}
Footer.propTypes = {
  isOpen: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().bool),
  closePanel: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().func).isRequired,
  savedItemSlugs: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().array)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/Header.js":
/*!************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/Header.js ***!
  \************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Header)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_12__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_location_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/location/constants */ "./js/googlesitekit/datastore/location/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_components_Typography_P__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/components/Typography/P */ "./js/components/Typography/P.js");
/* harmony import */ var _js_components_SelectionPanel__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/components/SelectionPanel */ "./js/components/SelectionPanel/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Audience Selection Panel Header
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */









function Header({
  closePanel
}) {
  const isViewOnly = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_5__["default"])();
  const adminSettingsURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_SITE).getSiteKitAdminSettingsURL({
    scrollTo: 'visitor-groups'
  }));
  const isSavingSettings = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER).isSavingUserAudienceSettings());
  const {
    navigateTo
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_location_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_LOCATION);
  const onSettingsClick = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_10__.useCallback)(() => navigateTo(adminSettingsURL), [adminSettingsURL, navigateTo]);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_components_SelectionPanel__WEBPACK_IMPORTED_MODULE_8__.SelectionPanelHeader, {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Select visitor groups', 'google-site-kit'),
    onCloseClick: closePanel,
    children: !isViewOnly && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_7__["default"], {
      children: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_11__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You can deactivate this widget in <link><strong>Settings</strong></link>', 'google-site-kit'), {
        link: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_6__["default"], {
          onClick: onSettingsClick,
          disabled: isSavingSettings,
          secondary: true
        }),
        strong: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("strong", {})
      })
    })
  });
}
Header.propTypes = {
  closePanel: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().func).isRequired
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/LearnMoreLink.js":
/*!*******************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/LearnMoreLink.js ***!
  \*******************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ LearnMoreLink)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Audience Selection Panel Learn More Link
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */




function LearnMoreLink() {
  const audienceLearnMoreURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_SITE).getGoogleSupportURL({
    path: '/analytics/answer/12799087'
  }));
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("div", {
    className: "googlesitekit-audience-selection-panel__learn-more",
    children: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Learn more about grouping site visitors and audiences in <link><strong>Analytics</strong></link>', 'google-site-kit'), {
      link: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_3__["default"], {
        href: audienceLearnMoreURL,
        secondary: true,
        external: true
      }),
      strong: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("strong", {})
    })
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/Panel.js":
/*!***********************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/Panel.js ***!
  \***********************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Panel)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _AudienceItems__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./AudienceItems */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/AudienceItems.js");
/* harmony import */ var _SyncErrorNotice__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./SyncErrorNotice */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/SyncErrorNotice.js");
/* harmony import */ var _Footer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Footer */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/Footer.js");
/* harmony import */ var _Header__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./Header */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/Header.js");
/* harmony import */ var _LearnMoreLink__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./LearnMoreLink */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/LearnMoreLink.js");
/* harmony import */ var _js_components_SelectionPanel__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/js/components/SelectionPanel */ "./js/components/SelectionPanel/index.js");
/* harmony import */ var _AudienceCreationSuccessNotice__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./AudienceCreationSuccessNotice */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/AudienceCreationSuccessNotice.js");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/* harmony import */ var _SaveErrorNotice__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./SaveErrorNotice */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/SaveErrorNotice.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Audience Selection Panel
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


















function Panel() {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_1__["default"])();
  const isOpen = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_UI).getValue(_constants__WEBPACK_IMPORTED_MODULE_3__.AUDIENCE_SELECTION_PANEL_OPENED_KEY));
  const isLoading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.MODULES_ANALYTICS_4).isFetchingSyncAvailableAudiences());
  const savedItemSlugs = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => {
    const {
      getConfigurableAudiences
    } = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.MODULES_ANALYTICS_4);
    const {
      getConfiguredAudiences
    } = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER);
    const configuredAudiences = getConfiguredAudiences() || [];
    const configurableAudiences = getConfigurableAudiences() || [];
    if (!configurableAudiences.length || !configuredAudiences.length) {
      return [];
    }
    return configurableAudiences.filter(({
      name
    }) => configuredAudiences.includes(name)).map(({
      name
    }) => name);
  });
  const isCreatingAudienceFromOAuth = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_15__["default"])(_constants__WEBPACK_IMPORTED_MODULE_3__.AUDIENCE_CREATION_FORM, 'autoSubmit');
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_FORMS);
  const {
    setValue
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_UI);
  const onSideSheetOpen = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useCallback)(() => {
    setValues(_constants__WEBPACK_IMPORTED_MODULE_3__.AUDIENCE_SELECTION_FORM, {
      [_constants__WEBPACK_IMPORTED_MODULE_3__.AUDIENCE_SELECTED]: savedItemSlugs,
      [_constants__WEBPACK_IMPORTED_MODULE_3__.AUDIENCE_SELECTION_CHANGED]: false
    });
    (0,_js_util__WEBPACK_IMPORTED_MODULE_2__.trackEvent)(`${viewContext}_audiences-sidebar`, 'audiences_sidebar_view');
  }, [savedItemSlugs, setValues, viewContext]);
  const closePanel = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useCallback)(() => {
    if (isOpen) {
      setValue(_constants__WEBPACK_IMPORTED_MODULE_3__.AUDIENCE_SELECTION_PANEL_OPENED_KEY, false);
      setValue(_constants__WEBPACK_IMPORTED_MODULE_3__.AUDIENCE_CREATION_SUCCESS_NOTICE_SLUG, false);
    }
  }, [setValue, isOpen]);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)(_js_components_SelectionPanel__WEBPACK_IMPORTED_MODULE_13__["default"], {
    className: "googlesitekit-audience-selection-panel",
    closePanel: closePanel,
    isOpen: isOpen || isCreatingAudienceFromOAuth,
    isLoading: isLoading,
    onOpen: onSideSheetOpen,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_Header__WEBPACK_IMPORTED_MODULE_11__["default"], {
      closePanel: closePanel
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_AudienceItems__WEBPACK_IMPORTED_MODULE_8__["default"], {
      savedItemSlugs: savedItemSlugs
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_LearnMoreLink__WEBPACK_IMPORTED_MODULE_12__["default"], {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_SaveErrorNotice__WEBPACK_IMPORTED_MODULE_16__["default"], {
      savedItemSlugs: savedItemSlugs
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_SyncErrorNotice__WEBPACK_IMPORTED_MODULE_9__["default"], {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_AudienceCreationSuccessNotice__WEBPACK_IMPORTED_MODULE_14__["default"], {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_Footer__WEBPACK_IMPORTED_MODULE_10__["default"], {
      closePanel: closePanel,
      isOpen: isOpen,
      savedItemSlugs: savedItemSlugs
    })]
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/RequestAccessButton.js":
/*!*************************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/RequestAccessButton.js ***!
  \*************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ RequestAccessButton)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Audience Selection Panel Request Access Button
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */




function RequestAccessButton({
  requestAccessURL
}) {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_3__["default"])();
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.Button, {
    className: "googlesitekit-audience-selection-panel__error-notice-action",
    href: requestAccessURL,
    target: "_blank",
    onClick: () => {
      (0,_js_util__WEBPACK_IMPORTED_MODULE_2__.trackEvent)(`${viewContext}_audiences-sidebar`, 'insufficient_permissions_error_request_access');
    },
    tertiary: true,
    children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Request access', 'google-site-kit')
  });
}
RequestAccessButton.propTypes = {
  requestAccessURL: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string).isRequired
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/RetryButton.js":
/*!*****************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/RetryButton.js ***!
  \*****************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ RetryButton)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Audience Selection Panel Retry Button
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */




function RetryButton({
  handleRetry
}) {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_3__["default"])();
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.Button, {
    className: "googlesitekit-audience-selection-panel__error-notice-action",
    onClick: () => {
      handleRetry();
      (0,_js_util__WEBPACK_IMPORTED_MODULE_2__.trackEvent)(`${viewContext}_audiences-sidebar`, 'data_loading_error_retry');
    },
    tertiary: true,
    children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Retry', 'google-site-kit')
  });
}
RetryButton.propTypes = {
  handleRetry: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().func).isRequired
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/SaveErrorNotice.js":
/*!*********************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/SaveErrorNotice.js ***!
  \*********************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SaveErrorNotice)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit-data */ "./js/googlesitekit-data.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/* harmony import */ var _js_components_SelectionPanel_SelectionPanelError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/SelectionPanel/SelectionPanelError */ "./js/components/SelectionPanel/SelectionPanelError.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Audience Selection Panel Selected Item Count Error Notice
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */









function SaveErrorNotice({
  savedItemSlugs
}) {
  const selectedItems = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_4__["default"])(_constants__WEBPACK_IMPORTED_MODULE_2__.AUDIENCE_SELECTION_FORM, _constants__WEBPACK_IMPORTED_MODULE_2__.AUDIENCE_SELECTED);
  const dismissedItemsError = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_4__["default"])(_constants__WEBPACK_IMPORTED_MODULE_2__.AUDIENCE_SELECTION_FORM, _constants__WEBPACK_IMPORTED_MODULE_2__.AUDIENCE_SELECTION_DISMISSED_ITEMS_ERROR_SLUG);
  const audienceSettings = (0,_js_googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).getUserAudienceSettings());
  const saveError = (0,_js_googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).getErrorForAction('saveUserAudienceSettings', [{
    ...audienceSettings,
    configuredAudiences: selectedItems
  }]));
  const selectedItemsCount = selectedItems?.length || 0;
  let itemLimitError;
  if (selectedItemsCount < _constants__WEBPACK_IMPORTED_MODULE_2__.MIN_SELECTED_AUDIENCES_COUNT) {
    itemLimitError = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: 1: Minimum number of groups that can be selected. 2: Number of selected groups. */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__._n)('Select at least %1$d group (%2$d selected)', 'Select at least %1$d groups (%2$d selected)', _constants__WEBPACK_IMPORTED_MODULE_2__.MIN_SELECTED_AUDIENCES_COUNT, 'google-site-kit'), _constants__WEBPACK_IMPORTED_MODULE_2__.MIN_SELECTED_AUDIENCES_COUNT, selectedItemsCount);
  } else if (selectedItemsCount > _constants__WEBPACK_IMPORTED_MODULE_2__.MAX_SELECTED_AUDIENCES_COUNT) {
    itemLimitError = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: 1: Maximum number of groups that can be selected. 2: Number of selected groups. */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Select up to %1$d groups (%2$d selected)', 'google-site-kit'), _constants__WEBPACK_IMPORTED_MODULE_2__.MAX_SELECTED_AUDIENCES_COUNT, selectedItemsCount);
  }
  const haveSettingsChanged = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_9__.useMemo)(() => {
    // Arrays need to be sorted to match in `isEqual`.
    return !(0,lodash__WEBPACK_IMPORTED_MODULE_6__.isEqual)((0,_js_util__WEBPACK_IMPORTED_MODULE_7__.safelySort)(selectedItems), (0,_js_util__WEBPACK_IMPORTED_MODULE_7__.safelySort)(savedItemSlugs));
  }, [selectedItems, savedItemSlugs]);
  if (!itemLimitError && !saveError && !dismissedItemsError) {
    return null;
  }
  let error = saveError || dismissedItemsError;
  if (haveSettingsChanged && itemLimitError) {
    error = {
      message: itemLimitError
    };
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_js_components_SelectionPanel_SelectionPanelError__WEBPACK_IMPORTED_MODULE_5__["default"], {
    error: error
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/SyncErrorNotice.js":
/*!*********************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/SyncErrorNotice.js ***!
  \*********************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SyncErrorNotice)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_util_errors__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util/errors */ "./js/util/errors.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_components_ReportErrorActions__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/components/ReportErrorActions */ "./js/components/ReportErrorActions.js");
/* harmony import */ var _RequestAccessButton__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./RequestAccessButton */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/RequestAccessButton.js");
/* harmony import */ var _RetryButton__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./RetryButton */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/RetryButton.js");
/* harmony import */ var _js_components_Notice__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/js/components/Notice */ "./js/components/Notice/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Audience Selection Panel Error Notice
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */














function SyncErrorNotice() {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_2__["default"])();
  const syncAvailableAudiencesError = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.MODULES_ANALYTICS_4).getErrorForAction('syncAvailableAudiences'));
  const [siteKitUserCountReportError, otherUserCountReportError] = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.MODULES_ANALYTICS_4).getAudienceUserCountReportErrors()) || [];
  const helpLink = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_SITE).getErrorTroubleshootingLinkURL({
    code: 'analytics-4_insufficient_permissions'
  }));
  const isOpen = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_UI).getValue(_constants__WEBPACK_IMPORTED_MODULE_4__.AUDIENCE_SELECTION_PANEL_OPENED_KEY));
  const {
    clearError,
    syncAvailableAudiences
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.MODULES_ANALYTICS_4);
  const retrySyncAvailableAudiences = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_15__.useCallback)(async () => {
    await clearError('syncAvailableAudiences');
    syncAvailableAudiences();
  }, [clearError, syncAvailableAudiences]);
  const errors = [];
  if (syncAvailableAudiencesError) {
    errors.push(syncAvailableAudiencesError);
  }
  if (otherUserCountReportError) {
    errors.push(otherUserCountReportError);
  }
  if (siteKitUserCountReportError) {
    errors.push(siteKitUserCountReportError);
  }
  const hasErrors = errors.length > 0;
  const hasInsufficientPermissionsError = errors.some(error => (0,_js_util_errors__WEBPACK_IMPORTED_MODULE_8__.isInsufficientPermissionsError)(error));

  // Track an event when the error notice is displayed.
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_15__.useEffect)(() => {
    if (!isOpen || !hasErrors) {
      return;
    }
    (0,_js_util__WEBPACK_IMPORTED_MODULE_3__.trackEvent)(`${viewContext}_audiences-sidebar`, hasInsufficientPermissionsError ? 'insufficient_permissions_error' : 'data_loading_error');
  }, [hasErrors, hasInsufficientPermissionsError, isOpen, viewContext]);
  if (!errors.length) {
    return null;
  }
  const userCountError = [otherUserCountReportError, siteKitUserCountReportError].some(error => !!error);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx)(_js_components_Notice__WEBPACK_IMPORTED_MODULE_13__["default"], {
    className: "googlesitekit-audience-selection-panel__error-notice googlesitekit-notice--error googlesitekit-notice--small googlesitekit-notice--square",
    type: _js_components_Notice__WEBPACK_IMPORTED_MODULE_13__["default"].TYPES.ERROR,
    description: hasInsufficientPermissionsError ? (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_16__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Insufficient permissions, contact your administrator. Trouble getting access? <HelpLink />', 'google-site-kit'), {
      HelpLink: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_9__["default"], {
        href: helpLink,
        external: true,
        hideExternalIndicator: true,
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Get help', 'google-site-kit')
      })
    }) : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Data loading failed', 'google-site-kit'),
    hideIcon: true,
    children: hasInsufficientPermissionsError || userCountError ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx)(_js_components_ReportErrorActions__WEBPACK_IMPORTED_MODULE_10__["default"], {
      moduleSlug: "analytics-4",
      error: errors,
      buttonVariant: "danger",
      RequestAccessButton: _RequestAccessButton__WEBPACK_IMPORTED_MODULE_11__["default"],
      RetryButton: _RetryButton__WEBPACK_IMPORTED_MODULE_12__["default"],
      hideGetHelpLink: true
    }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx)(_RetryButton__WEBPACK_IMPORTED_MODULE_12__["default"], {
      handleRetry: retrySyncAvailableAudiences
    })
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/constants.js":
/*!***************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/constants.js ***!
  \***************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   AUDIENCE_ADD_GROUP_NOTICE_SLUG: () => (/* binding */ AUDIENCE_ADD_GROUP_NOTICE_SLUG),
/* harmony export */   AUDIENCE_CREATION_EDIT_SCOPE_NOTICE_SLUG: () => (/* binding */ AUDIENCE_CREATION_EDIT_SCOPE_NOTICE_SLUG),
/* harmony export */   AUDIENCE_CREATION_FORM: () => (/* binding */ AUDIENCE_CREATION_FORM),
/* harmony export */   AUDIENCE_CREATION_NOTICE_SLUG: () => (/* binding */ AUDIENCE_CREATION_NOTICE_SLUG),
/* harmony export */   AUDIENCE_CREATION_SUCCESS_NOTICE_SLUG: () => (/* binding */ AUDIENCE_CREATION_SUCCESS_NOTICE_SLUG),
/* harmony export */   AUDIENCE_SELECTED: () => (/* binding */ AUDIENCE_SELECTED),
/* harmony export */   AUDIENCE_SELECTION_CHANGED: () => (/* binding */ AUDIENCE_SELECTION_CHANGED),
/* harmony export */   AUDIENCE_SELECTION_DISMISSED_ITEMS_ERROR_SLUG: () => (/* binding */ AUDIENCE_SELECTION_DISMISSED_ITEMS_ERROR_SLUG),
/* harmony export */   AUDIENCE_SELECTION_FORM: () => (/* binding */ AUDIENCE_SELECTION_FORM),
/* harmony export */   AUDIENCE_SELECTION_PANEL_OPENED_KEY: () => (/* binding */ AUDIENCE_SELECTION_PANEL_OPENED_KEY),
/* harmony export */   MAX_SELECTED_AUDIENCES_COUNT: () => (/* binding */ MAX_SELECTED_AUDIENCES_COUNT),
/* harmony export */   MIN_SELECTED_AUDIENCES_COUNT: () => (/* binding */ MIN_SELECTED_AUDIENCES_COUNT)
/* harmony export */ });
/**
 * AudienceSelectionPanel components - constants.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const AUDIENCE_ADD_GROUP_NOTICE_SLUG = 'audience-segmentation-add-group-notice';
const AUDIENCE_SELECTION_PANEL_OPENED_KEY = 'googlesitekit-audience-selection-panel-opened';
const AUDIENCE_SELECTION_FORM = 'audience-selection-form';
const AUDIENCE_SELECTED = 'audience-selected';
const AUDIENCE_SELECTION_CHANGED = 'audience-selection-changed';
const AUDIENCE_SELECTION_DISMISSED_ITEMS_ERROR_SLUG = 'audience-selection-dismissed-items-error';
const AUDIENCE_CREATION_NOTICE_SLUG = 'audience-segmentation-creation-notice';
const AUDIENCE_CREATION_SUCCESS_NOTICE_SLUG = 'audience-segmentation-creation-success-notice';
const MIN_SELECTED_AUDIENCES_COUNT = 1;
const MAX_SELECTED_AUDIENCES_COUNT = 3;
const AUDIENCE_CREATION_EDIT_SCOPE_NOTICE_SLUG = 'audience-creation-edit-scope-notice';
const AUDIENCE_CREATION_FORM = 'audience-creation-form';

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/index.js":
/*!***********************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/index.js ***!
  \***********************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AudienceSelectionPanel)
/* harmony export */ });
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_components_InViewProvider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/components/InViewProvider */ "./js/components/InViewProvider/index.js");
/* harmony import */ var _Panel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Panel */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/Panel.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Audience Selection Panel
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */






function AudienceSelectionPanel() {
  const isOpen = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_UI).getValue(_constants__WEBPACK_IMPORTED_MODULE_1__.AUDIENCE_SELECTION_PANEL_OPENED_KEY));
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_InViewProvider__WEBPACK_IMPORTED_MODULE_3__["default"], {
    value: {
      key: 'AudienceSelectionPanel',
      value: !!isOpen
    },
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_Panel__WEBPACK_IMPORTED_MODULE_4__["default"], {})
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileCitiesMetric.js":
/*!****************************************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileCitiesMetric.js ***!
  \****************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AudienceTileCitiesMetric)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _AudienceTileNoData__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AudienceTileNoData */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileNoData.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AudienceTileCitiesMetric component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */



function AudienceTileCitiesMetric({
  TileIcon,
  title,
  topCities
}) {
  const validDimensionValues = topCities?.dimensionValues?.filter(Boolean) || [];
  const hasDimensionValues = !!validDimensionValues.length;
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
    className: "googlesitekit-audience-segmentation-tile-metric googlesitekit-audience-segmentation-tile-metric--cities",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", {
      className: "googlesitekit-audience-segmentation-tile-metric__icon",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(TileIcon, {})
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
      className: "googlesitekit-audience-segmentation-tile-metric__container",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", {
        className: "googlesitekit-audience-segmentation-tile-metric__title",
        children: title
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
        className: "googlesitekit-audience-segmentation-tile-metric__content",
        children: [!hasDimensionValues && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_AudienceTileNoData__WEBPACK_IMPORTED_MODULE_1__["default"], {}), hasDimensionValues && validDimensionValues.map((city, index) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
          className: "googlesitekit-audience-segmentation-tile-metric__cities-metric",
          children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", {
            className: "googlesitekit-audience-segmentation-tile-metric__cities-metric-name",
            children: city?.value
          }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", {
            className: "googlesitekit-audience-segmentation-tile-metric__cities-metric-value",
            children: (0,_js_util__WEBPACK_IMPORTED_MODULE_0__.numFmt)(topCities?.metricValues[index]?.value / topCities?.total, {
              style: 'percent',
              maximumFractionDigits: 1
            })
          })]
        }, city?.value))]
      })]
    })]
  });
}
AudienceTileCitiesMetric.propTypes = {
  TileIcon: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().elementType).isRequired,
  title: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string).isRequired,
  topCities: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().object)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileCollectingData.js":
/*!******************************************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileCollectingData.js ***!
  \******************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AudienceTileCollectingData)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _svg_graphics_audience_segmentation_collecting_data_svg__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/svg/graphics/audience-segmentation-collecting-data.svg */ "./svg/graphics/audience-segmentation-collecting-data.svg");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AudienceTileCollectingData component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


function AudienceTileCollectingData() {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_3__.Fragment, {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_svg_graphics_audience_segmentation_collecting_data_svg__WEBPACK_IMPORTED_MODULE_1__["default"], {
      className: "googlesitekit-audience-segmentation-tile__zero-data-image"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("p", {
      className: "googlesitekit-audience-segmentation-tile__zero-data-description",
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Site Kit is collecting data for this group.', 'google-site-kit')
    })]
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileCollectingDataHideable.js":
/*!**************************************************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileCollectingDataHideable.js ***!
  \**************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AudienceTileCollectingDataHideable)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _svg_icons_visibility_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/svg/icons/visibility.svg */ "./svg/icons/visibility.svg");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AudienceTileCollectingDataHideable component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



function AudienceTileCollectingDataHideable({
  onHideTile
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.Fragment, {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("p", {
      className: "googlesitekit-audience-segmentation-tile__zero-data-description",
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You can hide this group until data is available.', 'google-site-kit')
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_1__["default"], {
      className: "googlesitekit-audience-segmentation-tile-hide-cta",
      onClick: onHideTile,
      leadingIcon: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_svg_icons_visibility_svg__WEBPACK_IMPORTED_MODULE_2__["default"], {
        width: 22,
        height: 22
      }),
      secondary: true,
      linkButton: true,
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Temporarily hide', 'google-site-kit')
    })]
  });
}
AudienceTileCollectingDataHideable.propTypes = {
  onHideTile: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().func).isRequired
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileError/TileErrorContent.js":
/*!**************************************************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileError/TileErrorContent.js ***!
  \**************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_util_errors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/util/errors */ "./js/util/errors.js");
/* harmony import */ var _svg_graphics_analytics_audience_segmentation_tile_error_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/svg/graphics/analytics-audience-segmentation-tile-error.svg */ "./svg/graphics/analytics-audience-segmentation-tile-error.svg");
/* harmony import */ var _js_components_ReportErrorActions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/components/ReportErrorActions */ "./js/components/ReportErrorActions.js");
/* harmony import */ var _js_modules_analytics_4_components_audience_segmentation_dashboard_GetHelpLink__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/components/audience-segmentation/dashboard/GetHelpLink */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/GetHelpLink.js");
/* harmony import */ var _js_components_Typography__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/Typography */ "./js/components/Typography/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * TileErrorContent component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */






const TileErrorContent = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_7__.forwardRef)(({
  errors,
  onRetry,
  onRequestAccess
}, ref) => {
  const hasInsufficientPermissionsError = errors.some(err => (0,_js_util_errors__WEBPACK_IMPORTED_MODULE_1__.isInsufficientPermissionsError)(err));
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
    className: "googlesitekit-audience-segmentation-tile-error",
    ref: ref,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      className: "googlesitekit-audience-segmentation-tile-error__container",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_svg_graphics_analytics_audience_segmentation_tile_error_svg__WEBPACK_IMPORTED_MODULE_2__["default"], {
        className: "googlesitekit-audience-segmentation-tile-error__image"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
        className: "googlesitekit-audience-segmentation-tile-error__body",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
          className: "googlesitekit-audience-segmentation-tile-error__message",
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_5__["default"], {
            as: "h3",
            type: "headline",
            size: "small",
            className: "googlesitekit-audience-segmentation-tile-error__title",
            children: hasInsufficientPermissionsError ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Insufficient permissions', 'google-site-kit') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Data loading failed', 'google-site-kit')
          })
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
          className: "googlesitekit-audience-segmentation-tile-error__actions",
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_js_components_ReportErrorActions__WEBPACK_IMPORTED_MODULE_3__["default"], {
            moduleSlug: "analytics-4",
            error: errors,
            GetHelpLink: hasInsufficientPermissionsError ? _js_modules_analytics_4_components_audience_segmentation_dashboard_GetHelpLink__WEBPACK_IMPORTED_MODULE_4__["default"] : undefined,
            hideGetHelpLink: !hasInsufficientPermissionsError,
            buttonVariant: "danger",
            onRetry: onRetry,
            onRequestAccess: onRequestAccess
          })
        })]
      })]
    })
  });
});
TileErrorContent.propTypes = {
  errors: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().array).isRequired,
  onRetry: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().func).isRequired,
  onRequestAccess: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().func).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TileErrorContent);

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileError/index.js":
/*!***************************************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileError/index.js ***!
  \***************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AudienceTileError)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _js_util_errors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/util/errors */ "./js/util/errors.js");
/* harmony import */ var _TileErrorContent__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TileErrorContent */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileError/TileErrorContent.js");
/* harmony import */ var _js_util_withIntersectionObserver__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/util/withIntersectionObserver */ "./js/util/withIntersectionObserver.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AudienceTileError component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */






const TileErrorContentWithIntersectionObserver = (0,_js_util_withIntersectionObserver__WEBPACK_IMPORTED_MODULE_2__["default"])(_TileErrorContent__WEBPACK_IMPORTED_MODULE_1__["default"]);
function AudienceTileError({
  audienceSlug,
  errors
}) {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_3__["default"])();
  const hasInsufficientPermissionsError = errors.some(err => (0,_js_util_errors__WEBPACK_IMPORTED_MODULE_0__.isInsufficientPermissionsError)(err));
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(TileErrorContentWithIntersectionObserver, {
    errors: errors,
    onInView: () => {
      const action = hasInsufficientPermissionsError ? 'insufficient_permissions_error' : 'data_loading_error';
      (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.trackEvent)(`${viewContext}_audiences-tile`, action, audienceSlug);
    },
    onRetry: () => {
      (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.trackEvent)(`${viewContext}_audiences-tile`, 'data_loading_error_retry', audienceSlug);
    },
    onRequestAccess: () => {
      (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.trackEvent)(`${viewContext}_audiences-tile`, 'insufficient_permissions_error_request_access', audienceSlug);
    }
  });
}
AudienceTileError.propTypes = {
  audienceSlug: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().string).isRequired,
  errors: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().array).isRequired
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileLoading.js":
/*!***********************************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileLoading.js ***!
  \***********************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AudienceTileLoading)
/* harmony export */ });
/* harmony import */ var _js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/components/PreviewBlock */ "./js/components/PreviewBlock.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AudienceTileLoading component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */


function AudienceTileLoading() {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
    className: "googlesitekit-audience-segmentation-tile-loading",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_0__["default"], {
      width: "100%",
      height: "20px"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_0__["default"], {
      width: "100%",
      height: "52px"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_0__["default"], {
      width: "100%",
      height: "52px"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_0__["default"], {
      width: "100%",
      height: "52px"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_0__["default"], {
      width: "100%",
      height: "52px"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_0__["default"], {
      width: "100%",
      height: "52px"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_0__["default"], {
      width: "100%",
      height: "52px"
    })]
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileMetric.js":
/*!**********************************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileMetric.js ***!
  \**********************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AudienceTileMetric)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AudienceTileMetric component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */


function AudienceTileMetric({
  TileIcon,
  title,
  metricValue,
  Badge,
  metricValueFormat
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
    className: "googlesitekit-audience-segmentation-tile-metric",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
      className: "googlesitekit-audience-segmentation-tile-metric__icon",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(TileIcon, {})
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
      className: "googlesitekit-audience-segmentation-tile-metric__container",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
        className: "googlesitekit-audience-segmentation-tile-metric__value",
        children: (0,_js_util__WEBPACK_IMPORTED_MODULE_0__.numFmt)(metricValue, metricValueFormat)
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
        className: "googlesitekit-audience-segmentation-tile-metric__title",
        children: title
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
      className: "googlesitekit-audience-segmentation-tile-metric__badge-container",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Badge, {})
    })]
  });
}
AudienceTileMetric.propTypes = {
  TileIcon: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().elementType).isRequired,
  title: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().string).isRequired,
  metricValue: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().number).isRequired,
  Badge: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().elementType).isRequired,
  metricValueFormat: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().object)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileNoData.js":
/*!**********************************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileNoData.js ***!
  \**********************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AudienceTileNoData)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AudienceTileNoData component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


function AudienceTileNoData() {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
    className: "googlesitekit-audience-segmentation-tile__no-data",
    children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No data to show yet', 'google-site-kit')
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTilePagesMetric.js":
/*!***************************************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTilePagesMetric.js ***!
  \***************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AudienceTilePagesMetric)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_18__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @wordpress/url */ "../node_modules/@wordpress/url/build-module/add-query-args.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/hooks/useBreakpoint */ "./js/hooks/useBreakpoint.ts");
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_util_errors__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util/errors */ "./js/util/errors.js");
/* harmony import */ var _js_components_BadgeWithTooltip__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/components/BadgeWithTooltip */ "./js/components/BadgeWithTooltip.js");
/* harmony import */ var _AudienceTilePagesMetricContent__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./AudienceTilePagesMetricContent */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTilePagesMetricContent.js");
/* harmony import */ var _js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceErrorModal__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceErrorModal */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceErrorModal.js");
/* harmony import */ var _js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/googlesitekit/widgets/default-areas */ "./js/googlesitekit/widgets/default-areas.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AudienceTilePagesMetric component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */















function AudienceTilePagesMetric({
  // TODO: The prop `audienceTileNumber` is part of a temporary workaround to ensure `AudienceErrorModal` is only rendered once
  // within `AudienceTilesWidget`. This should be removed once the `AudienceErrorModal` render is extracted
  // from `AudienceTilePagesMetric` and it's rendered once at a higher level instead. See https://github.com/google/site-kit-wp/issues/9543.
  audienceTileNumber,
  audienceSlug,
  TileIcon,
  title,
  topContent,
  topContentTitles,
  isTopContentPartialData
}) {
  const breakpoint = (0,_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_2__.useBreakpoint)();
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_12__["default"])();
  const postTypeDimension = _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.CUSTOM_DIMENSION_DEFINITIONS.googlesitekit_post_type.parameterName;
  const hasMissingCustomDimension = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).hasCustomDimensions(postTypeDimension));
  const hasAnalyticsEditScope = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).hasScope(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.EDIT_SCOPE));
  const redirectURL = (0,_wordpress_url__WEBPACK_IMPORTED_MODULE_16__.addQueryArgs)(__webpack_require__.g.location.href, {
    notification: 'audience_segmentation',
    widgetArea: _js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_11__.AREA_MAIN_DASHBOARD_TRAFFIC_AUDIENCE_SEGMENTATION
  });
  const errorRedirectURL = (0,_wordpress_url__WEBPACK_IMPORTED_MODULE_16__.addQueryArgs)(__webpack_require__.g.location.href, {
    widgetArea: _js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_11__.AREA_MAIN_DASHBOARD_TRAFFIC_AUDIENCE_SEGMENTATION
  });
  const isAutoCreatingCustomDimensionsForAudience = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_14__["default"])(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.AUDIENCE_TILE_CUSTOM_DIMENSION_CREATE, 'isAutoCreatingCustomDimensionsForAudience');
  const isCreatingCustomDimension = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).isCreatingCustomDimension(postTypeDimension));
  const isSyncingAvailableCustomDimensions = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).isFetchingSyncAvailableCustomDimensions());
  const customDimensionError = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getCreateCustomDimensionError(postTypeDimension));
  const propertyID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getPropertyID());
  const {
    clearError
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4);
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_FORMS);
  const {
    setPermissionScopeError,
    clearPermissionScopeError
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER);
  const isRetryingCustomDimensionCreate = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_14__["default"])(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.AUDIENCE_TILE_CUSTOM_DIMENSION_CREATE, 'isRetrying');
  const autoSubmit = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_14__["default"])(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.AUDIENCE_TILE_CUSTOM_DIMENSION_CREATE, 'autoSubmit');
  const setupErrorCode = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_SITE).getSetupErrorCode());
  const {
    setSetupErrorCode
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_SITE);
  const hasOAuthError = autoSubmit && setupErrorCode === 'access_denied';
  const onCreateCustomDimension = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_17__.useCallback)(({
    isRetrying
  } = {}) => {
    setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.AUDIENCE_TILE_CUSTOM_DIMENSION_CREATE, {
      autoSubmit: true,
      isRetrying
    });
    if (!hasAnalyticsEditScope) {
      setPermissionScopeError({
        code: _js_util_errors__WEBPACK_IMPORTED_MODULE_7__.ERROR_CODE_MISSING_REQUIRED_SCOPE,
        message: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Additional permissions are required to create new audiences in Analytics.', 'google-site-kit'),
        data: {
          status: 403,
          scopes: [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.EDIT_SCOPE],
          skipModal: true,
          skipDefaultErrorNotifications: true,
          redirectURL,
          errorRedirectURL
        }
      });
    }
  }, [hasAnalyticsEditScope, redirectURL, errorRedirectURL, setPermissionScopeError, setValues]);
  const onCancel = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_17__.useCallback)(() => {
    setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.AUDIENCE_TILE_CUSTOM_DIMENSION_CREATE, {
      autoSubmit: false,
      isRetrying: false
    });
    setSetupErrorCode(null);
    clearPermissionScopeError();
    clearError('createCustomDimension', [propertyID, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.CUSTOM_DIMENSION_DEFINITIONS.googlesitekit_post_type]);
  }, [clearError, clearPermissionScopeError, propertyID, setSetupErrorCode, setValues]);
  const isMobileBreakpoint = [_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_2__.BREAKPOINT_SMALL, _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_2__.BREAKPOINT_TABLET].includes(breakpoint);
  const isSaving = isAutoCreatingCustomDimensionsForAudience || isCreatingCustomDimension || isSyncingAvailableCustomDimensions;
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsxs)("div", {
    className: "googlesitekit-audience-segmentation-tile-metric googlesitekit-audience-segmentation-tile-metric--top-content",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)("div", {
      className: "googlesitekit-audience-segmentation-tile-metric__icon",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)(TileIcon, {})
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsxs)("div", {
      className: "googlesitekit-audience-segmentation-tile-metric__container",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsxs)("div", {
        className: "googlesitekit-audience-segmentation-tile-metric__title",
        children: [title, !isMobileBreakpoint && isTopContentPartialData && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)(_js_components_BadgeWithTooltip__WEBPACK_IMPORTED_MODULE_8__["default"], {
          className: "googlesitekit-audience-segmentation-partial-data-badge",
          label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Partial data', 'google-site-kit'),
          onTooltipOpen: () => {
            (0,_js_util__WEBPACK_IMPORTED_MODULE_13__.trackEvent)(`${viewContext}_audiences-tile`, 'view_top_content_partial_data_tooltip', audienceSlug);
          },
          tooltipTitle: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Still collecting full data for this timeframe, partial data is displayed for this metric', 'google-site-kit')
        })]
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)(_AudienceTilePagesMetricContent__WEBPACK_IMPORTED_MODULE_9__["default"], {
        topContentTitles: topContentTitles,
        topContent: topContent,
        isTopContentPartialData: isTopContentPartialData,
        hasCustomDimension: !hasMissingCustomDimension,
        onCreateCustomDimension: onCreateCustomDimension,
        isSaving: isSaving
      }), audienceTileNumber === 0 && (customDimensionError && !isSaving || isRetryingCustomDimensionCreate && !isAutoCreatingCustomDimensionsForAudience || hasOAuthError) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)(_js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceErrorModal__WEBPACK_IMPORTED_MODULE_10__["default"], {
        apiErrors: [customDimensionError],
        title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Failed to enable metric', 'google-site-kit'),
        description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Oops! Something went wrong. Retry enabling the metric.', 'google-site-kit'),
        onRetry: () => onCreateCustomDimension({
          isRetrying: true
        }),
        onCancel: onCancel,
        inProgress: isSaving,
        hasOAuthError: hasOAuthError,
        trackEventCategory: `${viewContext}_audiences-top-content-cta`
      })]
    })]
  });
}
AudienceTilePagesMetric.propTypes = {
  audienceTileNumber: (prop_types__WEBPACK_IMPORTED_MODULE_18___default().number),
  audienceSlug: (prop_types__WEBPACK_IMPORTED_MODULE_18___default().string).isRequired,
  TileIcon: (prop_types__WEBPACK_IMPORTED_MODULE_18___default().elementType).isRequired,
  title: (prop_types__WEBPACK_IMPORTED_MODULE_18___default().string).isRequired,
  topContent: (prop_types__WEBPACK_IMPORTED_MODULE_18___default().object),
  topContentTitles: (prop_types__WEBPACK_IMPORTED_MODULE_18___default().object),
  isTopContentPartialData: (prop_types__WEBPACK_IMPORTED_MODULE_18___default().bool)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTilePagesMetricContent.js":
/*!**********************************************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTilePagesMetricContent.js ***!
  \**********************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AudienceTilePagesMetricContent)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_14__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/hooks/useBreakpoint */ "./js/hooks/useBreakpoint.ts");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _AudienceTileNoData__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./AudienceTileNoData */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileNoData.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _PartialDataNotice__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./PartialDataNotice */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/PartialDataNotice.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_util_withIntersectionObserver__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/util/withIntersectionObserver */ "./js/util/withIntersectionObserver.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/* harmony import */ var _CreateCustomDimensionCTA__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./CreateCustomDimensionCTA */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/CreateCustomDimensionCTA.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AudienceTilePagesMetricContent component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */













const CreateCustomDimensionCTAWithIntersectionObserver = (0,_js_util_withIntersectionObserver__WEBPACK_IMPORTED_MODULE_9__["default"])(_CreateCustomDimensionCTA__WEBPACK_IMPORTED_MODULE_12__["default"]);
function AudienceTilePagesMetricContent({
  topContentTitles,
  topContent,
  isTopContentPartialData,
  hasCustomDimension,
  onCreateCustomDimension,
  isSaving
}) {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_10__["default"])();
  const viewOnlyDashboard = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_11__["default"])();
  const breakpoint = (0,_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_2__.useBreakpoint)();
  const isMobileBreakpoint = [_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_2__.BREAKPOINT_SMALL, _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_2__.BREAKPOINT_TABLET].includes(breakpoint);
  const validDimensionValues = topContent?.dimensionValues?.filter(Boolean) || [];
  const hasDimensionValues = !!validDimensionValues.length;
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.DATE_RANGE_OFFSET
  }));
  function handleCreateCustomDimension() {
    (0,_js_util__WEBPACK_IMPORTED_MODULE_8__.trackEvent)(`${viewContext}_audiences-top-content-cta`, 'create_custom_dimension').finally(onCreateCustomDimension);
  }
  function ContentLinkComponent({
    content
  }) {
    const pageTitle = topContentTitles[content?.value];
    const url = content?.value;
    const serviceURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
      return !viewOnlyDashboard ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getServiceReportURL('all-pages-and-screens', {
        filters: {
          unifiedPagePathScreen: url
        },
        dates
      }) : null;
    });
    if (viewOnlyDashboard) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("div", {
        className: "googlesitekit-audience-segmentation-tile__top-content-metric-name",
        children: pageTitle
      });
    }
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_6__["default"], {
      href: serviceURL,
      title: pageTitle,
      external: true,
      hideExternalIndicator: true,
      children: pageTitle
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)("div", {
    className: "googlesitekit-audience-segmentation-tile-metric__content",
    children: [!hasCustomDimension && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(CreateCustomDimensionCTAWithIntersectionObserver, {
      onClick: handleCreateCustomDimension,
      isSaving: isSaving,
      onInView: () => {
        (0,_js_util__WEBPACK_IMPORTED_MODULE_8__.trackEvent)(`${viewContext}_audiences-top-content-cta`, 'view_cta');
      }
    }), hasCustomDimension && !hasDimensionValues && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_AudienceTileNoData__WEBPACK_IMPORTED_MODULE_5__["default"], {}), hasCustomDimension && hasDimensionValues && validDimensionValues.map((content, index) => {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)("div", {
        className: "googlesitekit-audience-segmentation-tile-metric__page-metric-container",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(ContentLinkComponent, {
          content: content
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("div", {
          className: "googlesitekit-audience-segmentation-tile-metric__page-metric-value",
          children: (0,_js_util__WEBPACK_IMPORTED_MODULE_8__.numFmt)(topContent?.metricValues[index]?.value)
        })]
      }, content?.value);
    }), isMobileBreakpoint && isTopContentPartialData && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_PartialDataNotice__WEBPACK_IMPORTED_MODULE_7__["default"], {
      content: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Still collecting full data for this timeframe, partial data is displayed for this metric', 'google-site-kit')
    })]
  });
}
AudienceTilePagesMetricContent.propTypes = {
  topContentTitles: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().object),
  topContent: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().object),
  isTopContentPartialData: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().bool),
  hasCustomDimension: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().bool),
  onCreateCustomDimension: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().func),
  isSaving: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().bool)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileZeroData/TileZeroDataContent.js":
/*!********************************************************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileZeroData/TileZeroDataContent.js ***!
  \********************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_components_InfoTooltip__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/InfoTooltip */ "./js/components/InfoTooltip.js");
/* harmony import */ var _js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceTilesWidget_AudienceTile_AudienceTileCollectingData__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileCollectingData */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileCollectingData.js");
/* harmony import */ var _js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceTilesWidget_AudienceTile_AudienceTileCollectingDataHideable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileCollectingDataHideable */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileCollectingDataHideable.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * ZeroDataContent component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */






const TileZeroDataContent = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_6__.forwardRef)(({
  Widget,
  audienceSlug,
  title,
  infoTooltip,
  isMobileBreakpoint,
  isTileHideable,
  onHideTile
}, ref) => {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_0__["default"])();
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(Widget, {
    ref: ref,
    noPadding: true,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
      className: "googlesitekit-audience-segmentation-tile",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
        className: "googlesitekit-audience-segmentation-tile__zero-data-container",
        children: [!isMobileBreakpoint && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", {
          className: "googlesitekit-audience-segmentation-tile__header",
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
            className: "googlesitekit-audience-segmentation-tile__header-title",
            children: [title, infoTooltip && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_InfoTooltip__WEBPACK_IMPORTED_MODULE_2__["default"], {
              title: infoTooltip,
              tooltipClassName: "googlesitekit-info-tooltip__content--audience",
              onOpen: () => (0,_js_util__WEBPACK_IMPORTED_MODULE_1__.trackEvent)(`${viewContext}_audiences-tile`, 'view_tile_tooltip', audienceSlug)
            })]
          })
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
          className: "googlesitekit-audience-segmentation-tile__zero-data-content",
          children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceTilesWidget_AudienceTile_AudienceTileCollectingData__WEBPACK_IMPORTED_MODULE_3__["default"], {}), isTileHideable && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceTilesWidget_AudienceTile_AudienceTileCollectingDataHideable__WEBPACK_IMPORTED_MODULE_4__["default"], {
            onHideTile: onHideTile
          })]
        })]
      })
    })
  });
});
TileZeroDataContent.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().elementType).isRequired,
  audienceSlug: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string).isRequired,
  title: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string).isRequired,
  infoTooltip: prop_types__WEBPACK_IMPORTED_MODULE_7___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_7___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_7___default().element)]),
  isMobileBreakpoint: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().bool),
  isTileHideable: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().bool),
  onHideTile: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().func)
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TileZeroDataContent);

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileZeroData/index.js":
/*!******************************************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileZeroData/index.js ***!
  \******************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AudienceTileZeroData)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_util_withIntersectionObserver__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/util/withIntersectionObserver */ "./js/util/withIntersectionObserver.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _TileZeroDataContent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./TileZeroDataContent */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileZeroData/TileZeroDataContent.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AudienceTileZeroData component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */





const TileZeroDataContentWithIntersectionObserver = (0,_js_util_withIntersectionObserver__WEBPACK_IMPORTED_MODULE_1__["default"])(_TileZeroDataContent__WEBPACK_IMPORTED_MODULE_3__["default"]);
function AudienceTileZeroData({
  Widget,
  audienceSlug,
  title,
  infoTooltip,
  isMobileBreakpoint,
  isTileHideable,
  onHideTile
}) {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_0__["default"])();
  function handleHideTile() {
    (0,_js_util__WEBPACK_IMPORTED_MODULE_2__.trackEvent)(`${viewContext}_audiences-tile`, 'temporarily_hide', audienceSlug).finally(onHideTile);
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(TileZeroDataContentWithIntersectionObserver, {
    Widget: Widget,
    audienceSlug: audienceSlug,
    title: title,
    infoTooltip: infoTooltip,
    isMobileBreakpoint: isMobileBreakpoint,
    isTileHideable: isTileHideable,
    onHideTile: handleHideTile,
    onInView: () => {
      (0,_js_util__WEBPACK_IMPORTED_MODULE_2__.trackEvent)(`${viewContext}_audiences-tile`, 'view_tile_collecting_data', audienceSlug);
    }
  });
}
AudienceTileZeroData.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().elementType).isRequired,
  audienceSlug: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string).isRequired,
  title: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().string).isRequired,
  infoTooltip: prop_types__WEBPACK_IMPORTED_MODULE_5___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_5___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_5___default().element)]),
  isMobileBreakpoint: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().bool),
  isTileHideable: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().bool),
  onHideTile: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().func)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/CreateCustomDimensionCTA.js":
/*!****************************************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/CreateCustomDimensionCTA.js ***!
  \****************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_components_Typography_P__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/Typography/P */ "./js/components/Typography/P.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Audience Segmentation CreateCustomDimensionCTA component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



const CreateCustomDimensionCTA = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.forwardRef)(({
  onClick,
  isSaving
}, ref) => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)("div", {
    ref: ref,
    className: "googlesitekit-audience-segmentation-tile-metric__no-data",
    children: [(0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No data to show', 'google-site-kit'), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_2__["default"], {
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Update Analytics to track metric', 'google-site-kit')
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.SpinnerButton, {
      onClick: onClick,
      isSaving: isSaving,
      disabled: isSaving,
      danger: true,
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Update', 'google-site-kit')
    })]
  });
});
CreateCustomDimensionCTA.propTypes = {
  onClick: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().func).isRequired,
  isSaving: (prop_types__WEBPACK_IMPORTED_MODULE_5___default().bool)
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CreateCustomDimensionCTA);

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/PartialDataNotice.js":
/*!*********************************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/PartialDataNotice.js ***!
  \*********************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ PartialDataNotice)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Audience Segmentation PartialDataNotice component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


function PartialDataNotice({
  content
}) {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
    className: "googlesitekit-audience-segmentation-partial-data-notice",
    children: content
  });
}
PartialDataNotice.propTypes = {
  content: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().node)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/index.js":
/*!*********************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/index.js ***!
  \*********************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AudienceTile)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_23__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/hooks/useBreakpoint */ "./js/hooks/useBreakpoint.ts");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _svg_icons_audience_metric_icon_visitors_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/svg/icons/audience-metric-icon-visitors.svg */ "./svg/icons/audience-metric-icon-visitors.svg");
/* harmony import */ var _svg_icons_audience_metric_icon_visits_per_visitor_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/svg/icons/audience-metric-icon-visits-per-visitor.svg */ "./svg/icons/audience-metric-icon-visits-per-visitor.svg");
/* harmony import */ var _svg_icons_audience_metric_icon_pages_per_visit_svg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/svg/icons/audience-metric-icon-pages-per-visit.svg */ "./svg/icons/audience-metric-icon-pages-per-visit.svg");
/* harmony import */ var _svg_icons_audience_metric_icon_pageviews_svg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/svg/icons/audience-metric-icon-pageviews.svg */ "./svg/icons/audience-metric-icon-pageviews.svg");
/* harmony import */ var _svg_icons_audience_metric_icon_cities_svg__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/svg/icons/audience-metric-icon-cities.svg */ "./svg/icons/audience-metric-icon-cities.svg");
/* harmony import */ var _svg_icons_audience_metric_icon_top_content_svg__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/svg/icons/audience-metric-icon-top-content.svg */ "./svg/icons/audience-metric-icon-top-content.svg");
/* harmony import */ var _AudienceTileMetric__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./AudienceTileMetric */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileMetric.js");
/* harmony import */ var _AudienceTileCitiesMetric__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./AudienceTileCitiesMetric */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileCitiesMetric.js");
/* harmony import */ var _AudienceTilePagesMetric__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./AudienceTilePagesMetric */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTilePagesMetric.js");
/* harmony import */ var _js_components_ChangeBadge__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/js/components/ChangeBadge */ "./js/components/ChangeBadge.js");
/* harmony import */ var _js_components_InfoTooltip__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/js/components/InfoTooltip */ "./js/components/InfoTooltip.js");
/* harmony import */ var _PartialDataNotice__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./PartialDataNotice */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/PartialDataNotice.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_components_BadgeWithTooltip__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @/js/components/BadgeWithTooltip */ "./js/components/BadgeWithTooltip.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _AudienceTileZeroData__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./AudienceTileZeroData */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileZeroData/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AudienceTile component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */





















function AudienceTile({
  // TODO: The prop `audienceTileNumber` is part of a temporary workaround to ensure `AudienceErrorModal` is only rendered once
  // within `AudienceTilesWidget`. This should be removed once the `AudienceErrorModal` render is extracted
  // from `AudienceTilePagesMetric` and it's rendered once at a higher level instead. See https://github.com/google/site-kit-wp/issues/9543.
  audienceTileNumber = 0,
  audienceSlug,
  title,
  infoTooltip,
  visitors,
  visitsPerVisitor,
  pagesPerVisit,
  pageviews,
  percentageOfTotalPageViews,
  topCities,
  topContent,
  topContentTitles,
  hasInvalidCustomDimensionError,
  Widget,
  audienceResourceName,
  isZeroData,
  isPartialData,
  isTileHideable,
  onHideTile
}) {
  const breakpoint = (0,_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_3__.useBreakpoint)();
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_20__["default"])();
  const isViewOnly = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_4__["default"])();
  const isPropertyPartialData = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useInViewSelect)(select => {
    const propertyID = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getPropertyID();
    return propertyID && select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).isPropertyPartialData(propertyID);
  });
  const isSiteKitAudience = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).isSiteKitAudience(audienceResourceName));
  const isAudiencePartialData = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useInViewSelect)(select => {
    if (isSiteKitAudience || isPropertyPartialData === undefined) {
      return false;
    }
    return !isPropertyPartialData && audienceResourceName && select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).isAudiencePartialData(audienceResourceName);
  }, [isPropertyPartialData, isSiteKitAudience, audienceResourceName]);
  const isTopContentPartialData = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useInViewSelect)(select => {
    if (isPropertyPartialData === undefined) {
      return false;
    }
    return !isPropertyPartialData && !isAudiencePartialData && select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).isCustomDimensionPartialData('googlesitekit_post_type');
  }, [isAudiencePartialData]);
  const postTypeDimensionExists = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).hasCustomDimensions('googlesitekit_post_type'), []);
  const isMobileBreakpoint = [_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_3__.BREAKPOINT_SMALL, _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_3__.BREAKPOINT_TABLET].includes(breakpoint);
  if (isPartialData && isZeroData) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_22__.jsx)(_AudienceTileZeroData__WEBPACK_IMPORTED_MODULE_21__["default"], {
      Widget: Widget,
      audienceSlug: audienceSlug,
      title: title,
      infoTooltip: infoTooltip,
      isMobileBreakpoint: isMobileBreakpoint,
      isTileHideable: isTileHideable,
      onHideTile: onHideTile
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_22__.jsx)(Widget, {
    noPadding: true,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_22__.jsxs)("div", {
      className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-audience-segmentation-tile', {
        'googlesitekit-audience-segmentation-tile--partial-data': isAudiencePartialData
      }),
      children: [!isMobileBreakpoint && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_22__.jsxs)("div", {
        className: "googlesitekit-audience-segmentation-tile__header",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_22__.jsxs)("div", {
          className: "googlesitekit-audience-segmentation-tile__header-title",
          children: [title, infoTooltip && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_22__.jsx)(_js_components_InfoTooltip__WEBPACK_IMPORTED_MODULE_16__["default"], {
            title: infoTooltip,
            tooltipClassName: "googlesitekit-info-tooltip__content--audience",
            onOpen: () => (0,_js_util__WEBPACK_IMPORTED_MODULE_18__.trackEvent)(`${viewContext}_audiences-tile`, 'view_tile_tooltip', audienceSlug)
          })]
        }), isAudiencePartialData && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_22__.jsx)(_js_components_BadgeWithTooltip__WEBPACK_IMPORTED_MODULE_19__["default"], {
          className: "googlesitekit-audience-segmentation-partial-data-badge",
          label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Partial data', 'google-site-kit'),
          tooltipTitle: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Still collecting full data for this timeframe, partial data is displayed for this group', 'google-site-kit'),
          onTooltipOpen: () => {
            (0,_js_util__WEBPACK_IMPORTED_MODULE_18__.trackEvent)(`${viewContext}_audiences-tile`, 'view_tile_partial_data_tooltip', audienceSlug);
          }
        })]
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_22__.jsxs)("div", {
        className: "googlesitekit-audience-segmentation-tile__metrics",
        children: [isMobileBreakpoint && isAudiencePartialData && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_22__.jsx)(_PartialDataNotice__WEBPACK_IMPORTED_MODULE_17__["default"], {
          content: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Still collecting full data for this timeframe, partial data is displayed for this group', 'google-site-kit')
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_22__.jsx)(_AudienceTileMetric__WEBPACK_IMPORTED_MODULE_12__["default"], {
          TileIcon: _svg_icons_audience_metric_icon_visitors_svg__WEBPACK_IMPORTED_MODULE_6__["default"],
          title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Visitors', 'google-site-kit'),
          metricValue: visitors.currentValue,
          Badge: () => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_22__.jsx)(_js_components_ChangeBadge__WEBPACK_IMPORTED_MODULE_15__["default"], {
            previousValue: visitors.previousValue,
            currentValue: visitors.currentValue
          })
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_22__.jsx)(_AudienceTileMetric__WEBPACK_IMPORTED_MODULE_12__["default"], {
          TileIcon: _svg_icons_audience_metric_icon_visits_per_visitor_svg__WEBPACK_IMPORTED_MODULE_7__["default"],
          title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Visits per visitor', 'google-site-kit'),
          metricValue: visitsPerVisitor.currentValue,
          Badge: () => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_22__.jsx)(_js_components_ChangeBadge__WEBPACK_IMPORTED_MODULE_15__["default"], {
            previousValue: visitsPerVisitor.previousValue,
            currentValue: visitsPerVisitor.currentValue
          })
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_22__.jsx)(_AudienceTileMetric__WEBPACK_IMPORTED_MODULE_12__["default"], {
          TileIcon: _svg_icons_audience_metric_icon_pages_per_visit_svg__WEBPACK_IMPORTED_MODULE_8__["default"],
          title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Pages per visit', 'google-site-kit'),
          metricValue: pagesPerVisit.currentValue,
          Badge: () => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_22__.jsx)(_js_components_ChangeBadge__WEBPACK_IMPORTED_MODULE_15__["default"], {
            previousValue: pagesPerVisit.previousValue,
            currentValue: pagesPerVisit.currentValue
          }),
          metricValueFormat: {
            style: 'decimal',
            maximumFractionDigits: 2
          }
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_22__.jsx)(_AudienceTileMetric__WEBPACK_IMPORTED_MODULE_12__["default"], {
          TileIcon: _svg_icons_audience_metric_icon_pageviews_svg__WEBPACK_IMPORTED_MODULE_9__["default"],
          title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.sprintf)(/* translators: %s: is a percentage value such as 33.3%. */
          (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('%s of total pageviews', 'google-site-kit'), (0,_js_util__WEBPACK_IMPORTED_MODULE_18__.numFmt)(percentageOfTotalPageViews, {
            style: 'percent',
            maximumFractionDigits: 1
          })),
          metricValue: pageviews.currentValue,
          Badge: () => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_22__.jsx)(_js_components_ChangeBadge__WEBPACK_IMPORTED_MODULE_15__["default"], {
            previousValue: pageviews.previousValue,
            currentValue: pageviews.currentValue
          })
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_22__.jsx)(_AudienceTileCitiesMetric__WEBPACK_IMPORTED_MODULE_13__["default"], {
          TileIcon: _svg_icons_audience_metric_icon_cities_svg__WEBPACK_IMPORTED_MODULE_10__["default"],
          title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Cities with the most visitors', 'google-site-kit'),
          topCities: topCities
        }), (!isViewOnly || postTypeDimensionExists && !hasInvalidCustomDimensionError) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_22__.jsx)(_AudienceTilePagesMetric__WEBPACK_IMPORTED_MODULE_14__["default"], {
          audienceTileNumber: audienceTileNumber,
          audienceSlug: audienceSlug,
          TileIcon: _svg_icons_audience_metric_icon_top_content_svg__WEBPACK_IMPORTED_MODULE_11__["default"],
          title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Top content by pageviews', 'google-site-kit'),
          topContentTitles: topContentTitles,
          topContent: topContent,
          isTopContentPartialData: isTopContentPartialData
        })]
      })]
    })
  });
}
AudienceTile.propTypes = {
  audienceTileNumber: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().number),
  audienceSlug: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().string).isRequired,
  title: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().string).isRequired,
  infoTooltip: prop_types__WEBPACK_IMPORTED_MODULE_23___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_23___default().string), (prop_types__WEBPACK_IMPORTED_MODULE_23___default().element)]),
  visitors: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().object),
  visitsPerVisitor: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().object),
  pagesPerVisit: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().object),
  pageviews: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().object),
  percentageOfTotalPageViews: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().number),
  topCities: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().object),
  topContent: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().object),
  topContentTitles: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().object),
  hasInvalidCustomDimensionError: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().bool),
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().elementType).isRequired,
  audienceResourceName: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().string).isRequired,
  isZeroData: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().bool),
  isPartialData: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().bool),
  isTileHideable: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().bool),
  onHideTile: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().func)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTiles/Body.js":
/*!*********************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTiles/Body.js ***!
  \*********************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Body)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_16__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_utils_custom_dimensions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/custom-dimensions */ "./js/modules/analytics-4/utils/custom-dimensions.js");
/* harmony import */ var _js_modules_analytics_4_utils_report_rows_with_set_values__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/report-rows-with-set-values */ "./js/modules/analytics-4/utils/report-rows-with-set-values.js");
/* harmony import */ var _js_modules_analytics_4_hooks_useAudienceTilesReports__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/hooks/useAudienceTilesReports */ "./js/modules/analytics-4/hooks/useAudienceTilesReports.js");
/* harmony import */ var _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/hooks/useBreakpoint */ "./js/hooks/useBreakpoint.ts");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/* harmony import */ var _js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceSegmentationErrorWidget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationErrorWidget */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationErrorWidget/index.js");
/* harmony import */ var _js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceTilesWidget_AudienceTile_AudienceTileLoading__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileLoading */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileLoading.js");
/* harmony import */ var _js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceTilesWidget_AudienceTile_AudienceTileError__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileError */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileError/index.js");
/* harmony import */ var _js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceTilesWidget_AudienceTile__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/index.js");
/* harmony import */ var _js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceTilesWidget_AudienceTooltipMessage__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTooltipMessage */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTooltipMessage.js");
/* harmony import */ var _js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceTilesWidget_MaybePlaceholderTile__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/MaybePlaceholderTile */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/MaybePlaceholderTile.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AudienceTilesWidget Body component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */















function hasZeroDataForAudience(report, dimensionName) {
  const audienceData = report?.rows?.find(row => row.dimensionValues?.[0]?.value === dimensionName);
  const totalUsers = audienceData?.metricValues?.[0]?.value || 0;
  return totalUsers === 0;
}
function Body({
  activeTileIndex,
  allTilesError,
  individualTileErrors,
  loading,
  topCitiesReportsLoaded,
  topContentReportsLoaded,
  topContentPageTitlesReportsLoaded,
  visibleAudiences,
  Widget
}) {
  const breakpoint = (0,_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_6__.useBreakpoint)();
  const isViewOnly = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_7__["default"])();
  const isTabbedBreakpoint = breakpoint === _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_6__.BREAKPOINT_SMALL || breakpoint === _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_6__.BREAKPOINT_TABLET;
  const audiences = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => {
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getOrSyncAvailableAudiences();
  }, []);

  // An array of audience resource names.
  const configuredAudiences = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).getConfiguredAudiences(), []);
  const [siteKitAudiences, otherAudiences] = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getConfiguredSiteKitAndOtherAudiences()) || [[], []];
  const isSiteKitAudiencePartialData = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasAudiencePartialData(siteKitAudiences));
  const partialDataStates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => configuredAudiences?.reduce((acc, audienceResourceName) => {
    acc[audienceResourceName] = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).isAudiencePartialData(audienceResourceName);
    return acc;
  }, {}), [configuredAudiences]);
  const {
    report,
    reportError,
    siteKitAudiencesReport,
    totalPageviews,
    totalPageviewsReportError,
    topCitiesReport,
    topContentReport,
    topContentReportErrors,
    topContentPageTitlesReport,
    topContentPageTitlesReportErrors
  } = (0,_js_modules_analytics_4_hooks_useAudienceTilesReports__WEBPACK_IMPORTED_MODULE_5__["default"])({
    isSiteKitAudiencePartialData,
    siteKitAudiences,
    otherAudiences
  });
  function getAudienceTileMetrics(audienceResourceName) {
    const isSiteKitAudience = siteKitAudiences.some(audience => audience.name === audienceResourceName);

    // Get the audience slug (e.g., 'new-visitors', 'returning-visitors').
    const audienceSlug = siteKitAudiences.find(audience => audience.name === audienceResourceName)?.audienceSlug;
    function findMetricsForDateRange(dateRange) {
      let row;
      if (isSiteKitAudience && isSiteKitAudiencePartialData) {
        // Determine the dimension value ('new' or 'returning') for Site Kit audiences.
        const dimensionValue = audienceSlug === 'new-visitors' ? 'new' : 'returning';
        row = siteKitAudiencesReport?.rows?.find(({
          dimensionValues
        }) => dimensionValues?.[0]?.value === dimensionValue && dimensionValues?.[1]?.value === dateRange);
      } else {
        row = report?.rows?.find(({
          dimensionValues
        }) => dimensionValues?.[0]?.value === audienceResourceName && dimensionValues?.[1]?.value === dateRange);
      }
      return [Number(row?.metricValues?.[0]?.value || 0),
      // totalUsers
      Number(row?.metricValues?.[1]?.value || 0),
      // sessionsPerUser
      Number(row?.metricValues?.[2]?.value || 0),
      // screenPageViewsPerSession
      Number(row?.metricValues?.[3]?.value || 0) // screenPageViews
      ];
    }
    const currentMetrics = findMetricsForDateRange('date_range_0');
    const previousMetrics = findMetricsForDateRange('date_range_1');
    return {
      current: currentMetrics,
      previous: previousMetrics
    };
  }
  function getAudienceTileData(audienceResourceName, audienceIndex) {
    const audienceName = audiences?.filter(({
      name
    }) => name === audienceResourceName)?.[0]?.displayName || '';
    const audienceSlug = audiences?.filter(({
      name
    }) => name === audienceResourceName)?.[0]?.audienceSlug || '';
    const {
      current,
      previous
    } = getAudienceTileMetrics(audienceResourceName);
    const visitors = current[0];
    const prevVisitors = previous[0];
    const visitsPerVisitors = current[1];
    const prevVisitsPerVisitors = previous[1];
    const pagesPerVisit = current[2];
    const prevPagesPerVisit = previous[2];
    const pageviews = current[3];
    const prevPageviews = previous[3];
    const topCities = topCitiesReport?.[audienceIndex];
    const topContent = topContentReport?.[audienceIndex];
    const topContentTitles = topContentPageTitlesReport?.[audienceIndex]?.rows?.reduce((acc, row) => {
      acc[row.dimensionValues[0].value] = row.dimensionValues[1].value;
      return acc;
    }, {}) || {};
    const isSiteKitAudience = siteKitAudiences.some(audience => audience.name === audienceResourceName);
    let reportToCheck = report;
    let dimensionValue = audienceResourceName;
    if (isSiteKitAudience && isSiteKitAudiencePartialData) {
      // If it's a Site Kit audience in a partial data state, use the siteKitAudiencesReport.
      reportToCheck = siteKitAudiencesReport;

      // Determine the dimension value ('new' or 'returning') for Site Kit audiences.
      dimensionValue = audienceSlug === 'new-visitors' ? 'new' : 'returning';
    }
    const isZeroData = hasZeroDataForAudience(reportToCheck, dimensionValue);
    const isPartialData = isSiteKitAudience ? false : partialDataStates[audienceResourceName];
    return {
      audienceName,
      audienceSlug,
      visitors,
      prevVisitors,
      visitsPerVisitors,
      prevVisitsPerVisitors,
      pagesPerVisit,
      prevPagesPerVisit,
      pageviews,
      prevPageviews,
      topCities,
      topContent,
      topContentTitles,
      isZeroData,
      isPartialData
    };
  }
  const hasInvalidCustomDimensionError = Object.values(topContentReportErrors).some(_js_modules_analytics_4_utils_custom_dimensions__WEBPACK_IMPORTED_MODULE_3__.isInvalidCustomDimensionError) || Object.values(topContentPageTitlesReportErrors).some(_js_modules_analytics_4_utils_custom_dimensions__WEBPACK_IMPORTED_MODULE_3__.isInvalidCustomDimensionError);
  const {
    dismissItem
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER);
  const {
    fetchSyncAvailableCustomDimensions
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4);
  const handleDismiss = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_15__.useCallback)(audienceResourceName => {
    dismissItem(`audience-tile-${audienceResourceName}`);
  }, [dismissItem]);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_15__.useEffect)(() => {
    if (!isViewOnly && hasInvalidCustomDimensionError) {
      fetchSyncAvailableCustomDimensions();
    }
  }, [fetchSyncAvailableCustomDimensions, hasInvalidCustomDimensionError, isViewOnly]);

  // TODO: The variable `audienceTileNumber` is part of a temporary workaround to ensure `AudienceErrorModal` is only rendered once
  // within `AudienceTilesWidget`. This should be removed once the `AudienceErrorModal` render is extracted
  // from `AudienceTilePagesMetric` and it's rendered once at a higher level instead. See https://github.com/google/site-kit-wp/issues/9543.
  let audienceTileNumber = 0;
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxs)("div", {
    className: "googlesitekit-widget-audience-tiles__body",
    children: [allTilesError && !loading && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx)(_js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceSegmentationErrorWidget__WEBPACK_IMPORTED_MODULE_8__["default"], {
      Widget: Widget,
      errors: [...Object.values(individualTileErrors).flat(2), reportError, totalPageviewsReportError]
    }), (allTilesError === false || loading) && visibleAudiences.map((audienceResourceName, index) => {
      // Conditionally render only the selected audience tile on mobile.
      if (isTabbedBreakpoint && index !== activeTileIndex) {
        return null;
      }
      const {
        audienceName,
        audienceSlug,
        visitors,
        prevVisitors,
        visitsPerVisitors,
        prevVisitsPerVisitors,
        pagesPerVisit,
        prevPagesPerVisit,
        pageviews,
        prevPageviews,
        topCities,
        topContent,
        topContentTitles,
        isZeroData,
        isPartialData
      } = getAudienceTileData(audienceResourceName, index);

      // Filter (not set) value from the top countries report if present.
      const filteredTopCitiesRows = topCities?.rows ? (0,_js_modules_analytics_4_utils_report_rows_with_set_values__WEBPACK_IMPORTED_MODULE_4__.reportRowsWithSetValues)(topCities.rows) : [];

      // Return loading tile if data is not yet loaded.
      if (loading || !topCitiesReportsLoaded?.[audienceResourceName] || !topContentReportsLoaded?.[audienceResourceName] || !topContentPageTitlesReportsLoaded?.[audienceResourceName] || isZeroData === undefined || isPartialData === undefined) {
        return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx)(Widget, {
          noPadding: true,
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx)(_js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceTilesWidget_AudienceTile_AudienceTileLoading__WEBPACK_IMPORTED_MODULE_9__["default"], {})
        }, audienceResourceName);
      }

      // If errored, skip rendering.
      if (individualTileErrors[audienceResourceName].length > 0) {
        return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx)(_js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceTilesWidget_AudienceTile_AudienceTileError__WEBPACK_IMPORTED_MODULE_10__["default"], {
          audienceSlug: audienceSlug,
          errors: individualTileErrors[audienceResourceName]
        }, audienceResourceName);
      }
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx)(_js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceTilesWidget_AudienceTile__WEBPACK_IMPORTED_MODULE_11__["default"], {
        audienceTileNumber: audienceTileNumber++,
        audienceSlug: audienceSlug,
        title: audienceName,
        infoTooltip: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx)(_js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceTilesWidget_AudienceTooltipMessage__WEBPACK_IMPORTED_MODULE_12__["default"], {
          audienceName: audienceName,
          audienceSlug: audienceSlug
        }),
        visitors: {
          currentValue: visitors,
          previousValue: prevVisitors
        },
        visitsPerVisitor: {
          currentValue: visitsPerVisitors,
          previousValue: prevVisitsPerVisitors
        },
        pagesPerVisit: {
          currentValue: pagesPerVisit,
          previousValue: prevPagesPerVisit
        },
        pageviews: {
          currentValue: pageviews,
          previousValue: prevPageviews
        },
        percentageOfTotalPageViews: totalPageviews !== 0 ? pageviews / totalPageviews : 0,
        topCities: {
          dimensionValues: [filteredTopCitiesRows?.[0]?.dimensionValues?.[0], filteredTopCitiesRows?.[1]?.dimensionValues?.[0], filteredTopCitiesRows?.[2]?.dimensionValues?.[0]],
          metricValues: [filteredTopCitiesRows?.[0]?.metricValues?.[0], filteredTopCitiesRows?.[1]?.metricValues?.[0], filteredTopCitiesRows?.[2]?.metricValues?.[0]],
          total: visitors
        },
        topContent: {
          dimensionValues: [topContent?.rows?.[0]?.dimensionValues?.[0], topContent?.rows?.[1]?.dimensionValues?.[0], topContent?.rows?.[2]?.dimensionValues?.[0]],
          metricValues: [topContent?.rows?.[0]?.metricValues?.[0], topContent?.rows?.[1]?.metricValues?.[0], topContent?.rows?.[2]?.metricValues?.[0]]
        },
        topContentTitles: topContentTitles,
        hasInvalidCustomDimensionError: hasInvalidCustomDimensionError,
        Widget: Widget,
        audienceResourceName: audienceResourceName,
        isZeroData: isZeroData,
        isPartialData: isPartialData,
        isTileHideable: visibleAudiences.length > 1,
        onHideTile: () => handleDismiss(audienceResourceName)
      }, audienceResourceName);
    }), !isTabbedBreakpoint && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx)(_js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceTilesWidget_MaybePlaceholderTile__WEBPACK_IMPORTED_MODULE_13__["default"], {
      Widget: Widget,
      loading: loading,
      allTilesError: allTilesError,
      visibleAudienceCount: visibleAudiences.length
    })]
  });
}
Body.propTypes = {
  activeTileIndex: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().number).isRequired,
  allTilesError: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool).isRequired,
  individualTileErrors: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().object),
  loading: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().bool).isRequired,
  topCitiesReportsLoaded: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().object).isRequired,
  topContentReportsLoaded: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().object).isRequired,
  topContentPageTitlesReportsLoaded: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().object).isRequired,
  visibleAudiences: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().array).isRequired,
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().elementType).isRequired
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTiles/Header.js":
/*!***********************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTiles/Header.js ***!
  \***********************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Header)
/* harmony export */ });
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceTilesWidget_AudienceTooltipMessage__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTooltipMessage */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTooltipMessage.js");
/* harmony import */ var _js_components_InfoTooltip__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/InfoTooltip */ "./js/components/InfoTooltip.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AudienceTilesWidget Header component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */








function Header({
  activeTileIndex,
  setActiveTile,
  visibleAudiences
}) {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_4__["default"])();
  const audiences = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => {
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getOrSyncAvailableAudiences();
  }, []);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_0__.TabBar
  // Force re-render when the number of audiences change, this is a workaround for a bug in TabBar which maintains an internal list of tabs but doesn't update it when the number of tabs is reduced.
  , {
    className: "googlesitekit-widget-audience-tiles__tabs googlesitekit-tab-bar--start-aligned-high-contrast",
    activeIndex: activeTileIndex,
    handleActiveIndexUpdate: index => setActiveTile(visibleAudiences[index]),
    children: visibleAudiences.map((audienceResourceName, index) => {
      const audienceName = audiences?.filter(({
        name
      }) => name === audienceResourceName)?.[0]?.displayName || '';
      const audienceSlug = audiences?.filter(({
        name
      }) => name === audienceResourceName)?.[0]?.audienceSlug || '';
      const tooltipMessage = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceTilesWidget_AudienceTooltipMessage__WEBPACK_IMPORTED_MODULE_5__["default"], {
        audienceName: audienceName,
        audienceSlug: audienceSlug
      });
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_0__.Tab
      // It's a bit counterintuitive, but we need to use `index` as the key here due to how the internal implementation of TabBar works.
      // Specifically, how it maintains an internal list of tabs and pushes new tabs onto the end of the list when it sees a new child. See the use of pushToTabList in renderTab:
      // https://github.com/material-components/material-components-web-react/blob/04ecb80383e49ff0dea765d5fc0d14a442a73c92/packages/tab-bar/index.tsx#L202-L212
      // If we use `audienceResourceName` as the key, and the list of audiences changes, the TabBar's internal list of tabs may go out of sync with the rendered list
      // and the wrong tab will be selected when switching between audiences.
      , {
        "aria-label": audienceName,
        children: [audienceName, /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_js_components_InfoTooltip__WEBPACK_IMPORTED_MODULE_6__["default"], {
          title: tooltipMessage,
          tooltipClassName: "googlesitekit-info-tooltip__content--audience",
          onOpen: () => {
            (0,_js_util__WEBPACK_IMPORTED_MODULE_3__.trackEvent)(`${viewContext}_audiences-tile`, 'view_tile_tooltip', audienceSlug);
          }
        })]
      }, index);
    })
  }, visibleAudiences.length);
}

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTiles/index.js":
/*!**********************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTiles/index.js ***!
  \**********************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AudienceTiles)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/hooks/useBreakpoint */ "./js/hooks/useBreakpoint.ts");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _Body__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Body */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTiles/Body.js");
/* harmony import */ var _Header__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Header */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTiles/Header.js");
/* harmony import */ var _js_modules_analytics_4_hooks_useAudienceTilesReports__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/hooks/useAudienceTilesReports */ "./js/modules/analytics-4/hooks/useAudienceTilesReports.js");
/* harmony import */ var _js_modules_analytics_4_utils_custom_dimensions__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/custom-dimensions */ "./js/modules/analytics-4/utils/custom-dimensions.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AudienceTilesWidget component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */









function hasZeroDataForAudience(report, dimensionName) {
  const audienceData = report?.rows?.find(row => row.dimensionValues?.[0]?.value === dimensionName);
  const totalUsers = audienceData?.metricValues?.[0]?.value || 0;
  return totalUsers === 0;
}
function AudienceTiles({
  Widget,
  widgetLoading
}) {
  const breakpoint = (0,_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_1__.useBreakpoint)();
  const isTabbedBreakpoint = breakpoint === _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_1__.BREAKPOINT_SMALL || breakpoint === _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_1__.BREAKPOINT_TABLET;

  // An array of audience resource names.
  const configuredAudiences = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).getConfiguredAudiences(), []);
  const audiences = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => {
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getOrSyncAvailableAudiences();
  }, []);
  const [siteKitAudiences, otherAudiences] = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getConfiguredSiteKitAndOtherAudiences()) || [[], []];
  const isSiteKitAudiencePartialData = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).hasAudiencePartialData(siteKitAudiences));
  const {
    report,
    reportLoaded,
    reportError,
    siteKitAudiencesReport,
    siteKitAudiencesReportLoaded,
    siteKitAudiencesReportError,
    totalPageviewsReportLoaded,
    totalPageviewsReportError,
    topCitiesReportsLoaded,
    topCitiesReportErrors,
    topContentReportsLoaded,
    topContentReportErrors,
    topContentPageTitlesReportsLoaded,
    topContentPageTitlesReportErrors
  } = (0,_js_modules_analytics_4_hooks_useAudienceTilesReports__WEBPACK_IMPORTED_MODULE_6__["default"])({
    isSiteKitAudiencePartialData,
    siteKitAudiences,
    otherAudiences
  });
  const individualTileErrors = configuredAudiences?.reduce((acc, audienceResourceName) => {
    acc[audienceResourceName] = [];
    [topCitiesReportErrors, topContentReportErrors, topContentPageTitlesReportErrors].forEach(reportErrors => {
      const error = reportErrors[audienceResourceName];

      // Filter out invalid custom dimension errors which only relate to the "Top content" metric area,
      // as we still want to show the tile in this case.
      if (error && !(0,_js_modules_analytics_4_utils_custom_dimensions__WEBPACK_IMPORTED_MODULE_7__.isInvalidCustomDimensionError)(error)) {
        acc[audienceResourceName].push(error);
      }
    });
    return acc;
  }, {});
  const dismissedItems = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).getDismissedItems());
  const {
    isDismissingItem
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER));
  const {
    dismissItem
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER);

  // useRef to track if the dismissal logic has already been executed.
  const hasDismissed = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_9__.useRef)({});
  const [audiencesToClearDismissal, visibleAudiences] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_9__.useMemo)(() => {
    const toClear = [];
    const visible = [];
    // Filter `configuredAudiences` to ensure only available audiences are included.
    const tempAudiences = configuredAudiences?.slice().filter(audienceResourceName => audiences.some(audience => audience.name === audienceResourceName));
    while (tempAudiences?.length > 0) {
      const audienceResourceName = tempAudiences.shift();
      const isDismissed = dismissedItems?.includes(`audience-tile-${audienceResourceName}`);
      const isSiteKitAudience = siteKitAudiences.some(audience => audience.name === audienceResourceName);
      let reportToCheck = report;
      let dimensionValue = audienceResourceName;
      if (isSiteKitAudience && isSiteKitAudiencePartialData) {
        // If it's a Site Kit audience in a partial data state, use the siteKitAudiencesReport.
        reportToCheck = siteKitAudiencesReport;

        // Get the audience slug (e.g., 'new-visitors', 'returning-visitors').
        const audienceSlug = siteKitAudiences.find(audience => audience.name === audienceResourceName)?.audienceSlug;

        // Determine the dimension value ('new' or 'returning') for Site Kit audiences.
        dimensionValue = audienceSlug === 'new-visitors' ? 'new' : 'returning';
      }
      const isZeroData = hasZeroDataForAudience(reportToCheck, dimensionValue);

      // Check if there are more audiences remaining to be processed.
      const remainingAudiences = tempAudiences.length + visible.length > 0;

      // Skip rendering the tile if it is dismissed, has zero data, and there are still more audiences to render.
      if (isDismissed && isZeroData && remainingAudiences) {
        continue;
      }

      // Collect audiences to re-dismiss if they have data again.
      if (isDismissed && !isZeroData) {
        toClear.push(audienceResourceName);
      }

      // Add audience to visibleAudiences
      visible.push(audienceResourceName);
    }
    return [toClear, visible];
  }, [audiences, configuredAudiences, dismissedItems, isSiteKitAudiencePartialData, report, siteKitAudiences, siteKitAudiencesReport]);
  function checkForAllTilesError() {
    const mainReportErrors = [];
    if (report) {
      mainReportErrors.push(reportError);
    }
    if (siteKitAudiencesReport) {
      mainReportErrors.push(siteKitAudiencesReportError);
    }
    if (mainReportErrors.every(Boolean) || totalPageviewsReportError) {
      return true;
    }
    return configuredAudiences?.every(audienceResourceName => individualTileErrors[audienceResourceName].length > 0);
  }
  const allTilesError = checkForAllTilesError();

  // Re-dismiss with a short expiry time to clear any previously dismissed tiles.
  // This ensures that the tile will reappear when it is populated with data again.
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_9__.useEffect)(() => {
    audiencesToClearDismissal.forEach(audienceResourceName => {
      const itemSlug = `audience-tile-${audienceResourceName}`;
      if (hasDismissed.current[itemSlug]) {
        return;
      }
      dismissItem(itemSlug, {
        expiresInSeconds: 1
      });

      // Mark as dismissed to prevent re-dismissing.
      hasDismissed.current[itemSlug] = true;
    });
  }, [audiencesToClearDismissal, dismissItem, isDismissingItem]);

  // Sync available custom dimensions if there is a custom dimension error.
  const isSyncingAvailableCustomDimensions = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).isFetchingSyncAvailableCustomDimensions());

  // Ensure the active tile is always correctly selected.
  const [activeTile, setActiveTile] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_9__.useState)(visibleAudiences[0]);
  const getAudienceTileIndex = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_9__.useCallback)(audienceResourceName => {
    const index = visibleAudiences.indexOf(audienceResourceName);
    return index === -1 ? 0 : index;
  }, [visibleAudiences]);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_9__.useEffect)(() => {
    if (!visibleAudiences.includes(activeTile)) {
      setActiveTile(visibleAudiences[0]);
    }
  }, [activeTile, visibleAudiences]);
  const activeTileIndex = getAudienceTileIndex(activeTile);

  // Determine loading state.
  const loading = widgetLoading || !reportLoaded || !siteKitAudiencesReportLoaded || !totalPageviewsReportLoaded || !topCitiesReportsLoaded || !topContentReportsLoaded || !topContentPageTitlesReportsLoaded || isSyncingAvailableCustomDimensions;
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)(Widget, {
    className: "googlesitekit-widget-audience-tiles",
    noPadding: true,
    children: [allTilesError === false && !loading && isTabbedBreakpoint && visibleAudiences.length > 0 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_Header__WEBPACK_IMPORTED_MODULE_5__["default"], {
      activeTileIndex: activeTileIndex,
      setActiveTile: setActiveTile,
      visibleAudiences: visibleAudiences
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_Body__WEBPACK_IMPORTED_MODULE_4__["default"], {
      activeTileIndex: activeTileIndex,
      allTilesError: allTilesError,
      individualTileErrors: individualTileErrors,
      loading: loading,
      topCitiesReportsLoaded: topCitiesReportsLoaded,
      topContentReportsLoaded: topContentReportsLoaded,
      topContentPageTitlesReportsLoaded: topContentPageTitlesReportsLoaded,
      visibleAudiences: visibleAudiences,
      Widget: Widget
    })]
  });
}
AudienceTiles.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().elementType).isRequired,
  widgetLoading: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().bool).isRequired
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTooltipMessage.js":
/*!*************************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTooltipMessage.js ***!
  \*************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AudienceTooltipMessage)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AudienceTooltipMessage component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */




function AudienceTooltipMessage({
  audienceSlug,
  audienceName
}) {
  const documentationURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_SITE).getDocumentationLinkURL('visitor-group-insights'));
  const tooltipMessage = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useMemo)(() => {
    switch (audienceSlug) {
      case 'new-visitors':
        return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: is the audience name */
        (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('%s are people who visited your site for the first time. Note that under some circumstances it\'s possible for a visitor to be counted in both the "new" and "returning" groups. <link>Learn more</link>', 'google-site-kit'), '<strong>New visitors</strong>'), {
          strong: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("strong", {}),
          link: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_2__["default"], {
            href: documentationURL,
            external: true,
            hideExternalIndicator: true
          })
        });
      case 'returning-visitors':
        return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: is the audience name */
        (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('%s are people who have visited your site at least once before. Note that under some circumstances it\'s possible for a visitor to be counted in both the "new" and "returning" groups. <link>Learn more</link>', 'google-site-kit'), '<strong>Returning visitors</strong>'), {
          strong: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("strong", {}),
          link: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_2__["default"], {
            href: documentationURL,
            external: true,
            hideExternalIndicator: true
          })
        });
      default:
        return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: is the audience name */
        (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)("%s is an audience that already exists in your Analytics property. Note that it's possible for a visitor to be counted in more than one group. <link>Learn more</link>", 'google-site-kit'), `<strong>${audienceName}</strong>`), {
          strong: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)("strong", {}),
          link: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_2__["default"], {
            href: documentationURL,
            external: true,
            hideExternalIndicator: true
          })
        });
    }
  }, [audienceSlug, audienceName, documentationURL]);
  return tooltipMessage;
}
AudienceTooltipMessage.propTypes = {
  audienceSlug: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string).isRequired
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/MaybePlaceholderTile.js":
/*!***********************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/MaybePlaceholderTile.js ***!
  \***********************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ MaybePlaceholderTile)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _AudienceTile_AudienceTileLoading__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AudienceTile/AudienceTileLoading */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileLoading.js");
/* harmony import */ var _PlaceholderTile__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PlaceholderTile */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/PlaceholderTile.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * MaybePlaceholderTile component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */



function MaybePlaceholderTile({
  Widget,
  loading,
  allTilesError,
  visibleAudienceCount
}) {
  if ((allTilesError === false || loading) && visibleAudienceCount === 1) {
    if (loading) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Widget, {
        noPadding: true,
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_AudienceTile_AudienceTileLoading__WEBPACK_IMPORTED_MODULE_0__["default"], {})
      });
    }
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_PlaceholderTile__WEBPACK_IMPORTED_MODULE_1__["default"], {
      Widget: Widget
    });
  }
  return null;
}
MaybePlaceholderTile.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().elementType).isRequired,
  loading: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool).isRequired,
  allTilesError: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),
  visibleAudienceCount: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number).isRequired
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/PlaceholderTile.js":
/*!******************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/PlaceholderTile.js ***!
  \******************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ PlaceholderTile)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _svg_graphics_no_audience_banner_graphic_svg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/svg/graphics/no-audience-banner-graphic.svg */ "./svg/graphics/no-audience-banner-graphic.svg");
/* harmony import */ var _js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceSelectionPanel_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/constants */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/constants.js");
/* harmony import */ var _js_components_Typography__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/components/Typography */ "./js/components/Typography/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * PlaceholderTile component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */










function PlaceholderTile({
  Widget
}) {
  const hasConfigurableNonDefaultAudiences = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => {
    const configuredAudiences = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).getConfiguredAudiences();
    const configurableAudiences = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getConfigurableAudiences();
    return configurableAudiences.some(audience => audience.audienceType !== 'DEFAULT_AUDIENCE' && !configuredAudiences.includes(audience.name));
  });
  const audienceLearnMoreURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_SITE).getGoogleSupportURL({
    path: '/analytics/answer/12799087'
  }));
  const {
    setValue
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_UI);
  const AnalyticsLink = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_7__["default"], {
    href: audienceLearnMoreURL,
    secondary: true,
    external: true
  });
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(Widget, {
    className: "googlesitekit-audience-segmentation-tile-placeholder",
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)("div", {
      className: "googlesitekit-audience-segmentation-tile-placeholder__container",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_svg_graphics_no_audience_banner_graphic_svg__WEBPACK_IMPORTED_MODULE_8__["default"], {
        className: "googlesitekit-audience-segmentation-tile-placeholder__image"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)("div", {
        className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-audience-segmentation-tile-placeholder__body', {
          'googlesitekit-audience-segmentation-tile-placeholder__body--without-selectable-audiences': !hasConfigurableNonDefaultAudiences
        }),
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_10__["default"], {
          as: "h3",
          type: "title",
          size: "small",
          className: "googlesitekit-audience-segmentation-tile-placeholder__title",
          children: hasConfigurableNonDefaultAudiences ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Compare your group to other groups', 'google-site-kit') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Create more visitor groups', 'google-site-kit')
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("p", {
          className: "googlesitekit-audience-segmentation-tile-placeholder__description",
          children: hasConfigurableNonDefaultAudiences ? (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_12__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('<SelectGroupLink>Select</SelectGroupLink> another group to compare with your current group or learn more about how to group site visitors in <AnalyticsLink>Analytics</AnalyticsLink>', 'google-site-kit'), {
            AnalyticsLink,
            SelectGroupLink: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_7__["default"], {
              onClick: () => setValue(_js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceSelectionPanel_constants__WEBPACK_IMPORTED_MODULE_9__.AUDIENCE_SELECTION_PANEL_OPENED_KEY, true),
              secondary: true
            })
          }) : (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_12__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Learn more about how to group site visitors in <AnalyticsLink>Analytics</AnalyticsLink>', 'google-site-kit'), {
            AnalyticsLink
          })
        })]
      })]
    })
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/index.js":
/*!********************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/index.js ***!
  \********************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_13__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _AudienceTiles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./AudienceTiles */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTiles/index.js");
/* harmony import */ var _AudienceTile_AudienceTileLoading__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./AudienceTile/AudienceTileLoading */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileLoading.js");
/* harmony import */ var _js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceSegmentationErrorWidget__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationErrorWidget */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationErrorWidget/index.js");
/* harmony import */ var _js_modules_analytics_4_components_audience_segmentation_dashboard_NoAudienceBannerWidget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/modules/analytics-4/components/audience-segmentation/dashboard/NoAudienceBannerWidget */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/NoAudienceBannerWidget/index.js");
/* harmony import */ var _js_googlesitekit_widgets_components_WidgetNull__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/googlesitekit/widgets/components/WidgetNull */ "./js/googlesitekit/widgets/components/WidgetNull.js");
/* harmony import */ var _js_util_errors__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/util/errors */ "./js/util/errors.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AudienceTilesWidget component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Internal dependencies
 */












function AudienceTilesWidget({
  Widget
}) {
  const availableAudiences = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    const audiences = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getOrSyncAvailableAudiences();
    return audiences?.map(audience => audience.name);
  });
  const configuredAudiences = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER).getConfiguredAudiences());
  const availableAudiencesSynced = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasSyncedAudiences());
  const isSyncingAudiences = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).isSyncingAudiences());
  const {
    clearErrors,
    maybeSyncAvailableAudiences,
    syncAvailableAudiences
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4);
  const isSettingUpAudiences = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).isSettingUpAudiences());
  const syncAvailableAudiencesError = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getErrorForAction('syncAvailableAudiences'));
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_12__.useEffect)(() => {
    if (!availableAudiencesSynced && !isSyncingAudiences && !isSettingUpAudiences) {
      maybeSyncAvailableAudiences();
    }
  }, [availableAudiencesSynced, isSyncingAudiences, isSettingUpAudiences, maybeSyncAvailableAudiences]);
  if (syncAvailableAudiencesError) {
    const insufficientPermissionsError = (0,_js_util_errors__WEBPACK_IMPORTED_MODULE_10__.isInsufficientPermissionsError)(syncAvailableAudiencesError);
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceSegmentationErrorWidget__WEBPACK_IMPORTED_MODULE_7__["default"], {
      errors: syncAvailableAudiencesError,
      Widget: Widget,
      onRetry: !insufficientPermissionsError ? async () => {
        await clearErrors('syncAvailableAudiences');
        await syncAvailableAudiences();
      } : undefined,
      showRetryButton: !insufficientPermissionsError
    });
  }
  const hasMatchingAudience = configuredAudiences?.some(audience => availableAudiences?.includes(audience));
  if (!hasMatchingAudience) {
    return availableAudiencesSynced ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_modules_analytics_4_components_audience_segmentation_dashboard_NoAudienceBannerWidget__WEBPACK_IMPORTED_MODULE_8__["default"], {
      Widget: Widget,
      WidgetNull: _js_googlesitekit_widgets_components_WidgetNull__WEBPACK_IMPORTED_MODULE_9__["default"]
    }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(Widget, {
      className: "googlesitekit-widget-audience-tiles",
      noPadding: true,
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)("div", {
        className: "googlesitekit-widget-audience-tiles__body",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(Widget, {
          noPadding: true,
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_AudienceTile_AudienceTileLoading__WEBPACK_IMPORTED_MODULE_6__["default"], {})
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(Widget, {
          noPadding: true,
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_AudienceTile_AudienceTileLoading__WEBPACK_IMPORTED_MODULE_6__["default"], {})
        })]
      })
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_AudienceTiles__WEBPACK_IMPORTED_MODULE_5__["default"], {
    Widget: Widget,
    widgetLoading: !availableAudiencesSynced || !availableAudiences || !configuredAudiences
  });
}
AudienceTilesWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().elementType).isRequired,
  WidgetNull: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_1__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__.MODULE_SLUG_ANALYTICS_4
})(AudienceTilesWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/ChangeGroupsLink.js":
/*!***********************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/ChangeGroupsLink.js ***!
  \***********************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ ChangeGroupsLink)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _AudienceSelectionPanel_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./AudienceSelectionPanel/constants */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _svg_icons_pencil_alt_svg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/svg/icons/pencil-alt.svg */ "./svg/icons/pencil-alt.svg");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Audience Segmentation ChangeGroupsLink component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */









function ChangeGroupsLink() {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_2__["default"])();
  const availableAudiences = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getConfigurableAudiences(), []);
  const {
    setValue
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_UI);
  const openAudiencesSelectionPanel = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_10__.useCallback)(() => {
    setValue(_AudienceSelectionPanel_constants__WEBPACK_IMPORTED_MODULE_4__.AUDIENCE_SELECTION_PANEL_OPENED_KEY, true);
    (0,_js_util__WEBPACK_IMPORTED_MODULE_3__.trackEvent)(`${viewContext}_audiences-sidebar`, 'change_groups');
  }, [setValue, viewContext]);
  const renderChangeGroupsLink = Array.isArray(availableAudiences) && availableAudiences?.length > 0;
  if (!renderChangeGroupsLink) {
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_7__["default"], {
    className: "googlesitekit-widget-area__cta-link",
    onClick: openAudiencesSelectionPanel,
    leadingIcon: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_svg_icons_pencil_alt_svg__WEBPACK_IMPORTED_MODULE_8__["default"], {
      width: 22,
      height: 22
    }),
    secondary: true,
    linkButton: true,
    children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Change groups', 'google-site-kit')
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/ConnectAnalyticsCTAWidget.js":
/*!********************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/ConnectAnalyticsCTAWidget.js ***!
  \********************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ ConnectAnalyticsCTAWidget)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_14__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _svg_graphics_audience_connect_analytics_cta_graphic_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/svg/graphics/audience-connect-analytics-cta-graphic.svg */ "./svg/graphics/audience-connect-analytics-cta-graphic.svg");
/* harmony import */ var _svg_graphics_audience_connect_analytics_cta_graphic_tablet_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/svg/graphics/audience-connect-analytics-cta-graphic-tablet.svg */ "./svg/graphics/audience-connect-analytics-cta-graphic-tablet.svg");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_components_Typography_P__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/Typography/P */ "./js/components/Typography/P.js");
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_hooks_useActivateModuleCallback__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/hooks/useActivateModuleCallback */ "./js/hooks/useActivateModuleCallback.js");
/* harmony import */ var _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/hooks/useBreakpoint */ "./js/hooks/useBreakpoint.ts");
/* harmony import */ var _js_components_LeanCTABanner__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/components/LeanCTABanner */ "./js/components/LeanCTABanner.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * ConnectAnalyticsCTAWidget component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */











function ConnectAnalyticsCTAWidget({
  Widget
}) {
  const breakpoint = (0,_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_9__.useBreakpoint)();
  const isTabletBreakpoint = breakpoint === _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_9__.BREAKPOINT_TABLET;
  const handleConnectModule = (0,_js_hooks_useActivateModuleCallback__WEBPACK_IMPORTED_MODULE_8__["default"])(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_7__.MODULE_SLUG_ANALYTICS_4);
  const Icon = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_MODULES).getModuleIcon(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_7__.MODULE_SLUG_ANALYTICS_4));
  const content = isTabletBreakpoint ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_5__["default"], {
    children: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_12__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Google Analytics is disconnected, your audience metrics can’t be displayed. <a>Connect Google Analytics</a>', 'google-site-kit'), {
      a: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_4__["default"], {
        onClick: handleConnectModule,
        secondary: true
      })
    })
  }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_13__.Fragment, {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_5__["default"], {
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Google Analytics is disconnected, your audience metrics can’t be displayed', 'google-site-kit')
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_4__["default"], {
      onClick: handleConnectModule,
      secondary: true,
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Connect Google Analytics', 'google-site-kit')
    })]
  });
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(Widget, {
    noPadding: true,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_LeanCTABanner__WEBPACK_IMPORTED_MODULE_10__["default"], {
      Icon: Icon,
      SVGGraphic: isTabletBreakpoint ? _svg_graphics_audience_connect_analytics_cta_graphic_tablet_svg__WEBPACK_IMPORTED_MODULE_3__["default"] : _svg_graphics_audience_connect_analytics_cta_graphic_svg__WEBPACK_IMPORTED_MODULE_2__["default"],
      children: content
    })
  });
}
ConnectAnalyticsCTAWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().elementType).isRequired
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/GetHelpLink.js":
/*!******************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/GetHelpLink.js ***!
  \******************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ GetHelpLink)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Audience Segmentation Get Help Link component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


function GetHelpLink({
  linkURL
}) {
  return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Contact your administrator. Trouble getting access? <HelpLink />', 'google-site-kit'), {
    HelpLink: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_1__["default"], {
      href: linkURL,
      external: true,
      hideExternalIndicator: true,
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Get help', 'google-site-kit')
    })
  });
}
GetHelpLink.propTypes = {
  linkURL: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().string).isRequired
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/InfoNotice.js":
/*!*****************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/InfoNotice.js ***!
  \*****************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_components_Typography_P__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/Typography/P */ "./js/components/Typography/P.js");
/* harmony import */ var _svg_icons_lightbulb_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/svg/icons/lightbulb.svg */ "./svg/icons/lightbulb.svg");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * InfoNotice component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */




const InfoNotice = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.forwardRef)(({
  className,
  content,
  dismissLabel,
  Icon = _svg_icons_lightbulb_svg__WEBPACK_IMPORTED_MODULE_3__["default"],
  onDismiss
}, ref) => {
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", {
    ref: ref,
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-audience-segmentation-info-notice', className),
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(Icon, {
      width: "20",
      height: "20"
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)("div", {
      className: "googlesitekit-audience-segmentation-info-notice__body",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_2__["default"], {
        children: content
      }), dismissLabel && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.Button, {
        onClick: onDismiss,
        className: "googlesitekit-audience-segmentation-info-notice__dismiss",
        tertiary: true,
        children: dismissLabel
      })]
    })]
  });
});
InfoNotice.propTypes = {
  className: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().string),
  content: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().string).isRequired,
  dismissLabel: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().string),
  Icon: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().elementType),
  onDismiss: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().func)
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (InfoNotice);

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/InfoNoticeWidget/constants.js":
/*!*********************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/InfoNoticeWidget/constants.js ***!
  \*********************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   AUDIENCE_INFO_NOTICES: () => (/* binding */ AUDIENCE_INFO_NOTICES),
/* harmony export */   AUDIENCE_INFO_NOTICE_HIDE_UI: () => (/* binding */ AUDIENCE_INFO_NOTICE_HIDE_UI),
/* harmony export */   AUDIENCE_INFO_NOTICE_SLUG: () => (/* binding */ AUDIENCE_INFO_NOTICE_SLUG)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/**
 * Constants related to audience segmentation info notices.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * UI key to display audience segmentation info notice.
 *
 * @since 1.135.0
 * @private
 */
const AUDIENCE_INFO_NOTICE_HIDE_UI = 'audience-segmentation-info-notice-ui';

/**
 * Slug for audience segmentation info notice.
 *
 * @since 1.130.0
 * @private
 */
const AUDIENCE_INFO_NOTICE_SLUG = 'audience-segmentation-info-notice';

// Notice slugs: new-visitors, compare-metrics, custom-audiences, purchasers, returning-visitors, compare-new-returning, or compare-cities

/**
 * List of info notices for audiences.
 *
 * @since 1.130.0
 * @private
 */
const AUDIENCE_INFO_NOTICES = [{
  slug: 'new-visitors',
  content: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('The higher the portion of new visitors you have, the more your audience is growing. Looking at what content brings them to your site may give you insights on how to reach even more people.', 'google-site-kit')
}, {
  slug: 'compare-metrics',
  content: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Select up to three visitor groups to display on the dashboard and easily compare metrics between them.', 'google-site-kit')
}, {
  slug: 'custom-audiences',
  content: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Configure your own custom audiences in Analytics to gain deeper insights into visitor behavior, for example consider creating an “Existing customers” or “Subscribers” segment, depending on what goals you have for your site.', 'google-site-kit')
}, {
  slug: 'purchasers',
  content: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Select the Purchasers visitor group to gain insights into which visitors bring the most revenue to your site.', 'google-site-kit')
}, {
  slug: 'returning-visitors',
  content: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('The more returning visitors your site has, the stronger and more loyal an audience you’re building. Check which content brings people back to your site - it might help you create a strategy to build a community.', 'google-site-kit')
}, {
  slug: 'compare-new-returning',
  content: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Compare the ratio of “new” to “returning” visitors – this can give you insights on whether you have more people stopping by as a one-off, or more loyal visitors.', 'google-site-kit')
}, {
  slug: 'compare-cities',
  content: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Check the cities which bring you more new vs more returning visitors – there might be new audiences you could engage with in locations you hadn’t thought about.', 'google-site-kit')
}];

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/InfoNoticeWidget/index.js":
/*!*****************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/InfoNoticeWidget/index.js ***!
  \*****************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_14__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _js_modules_analytics_4_components_audience_segmentation_dashboard_InfoNotice__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/components/audience-segmentation/dashboard/InfoNotice */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/InfoNotice.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/InfoNoticeWidget/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_util_withIntersectionObserver__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/util/withIntersectionObserver */ "./js/util/withIntersectionObserver.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * InfoNoticeWidget component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */












const InfoNoticeWithIntersectionObserver = (0,_js_util_withIntersectionObserver__WEBPACK_IMPORTED_MODULE_10__["default"])(_js_modules_analytics_4_components_audience_segmentation_dashboard_InfoNotice__WEBPACK_IMPORTED_MODULE_5__["default"]);
function InfoNoticeWidget({
  Widget,
  WidgetNull
}) {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_11__["default"])();
  const availableAudiences = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => {
    const audiences = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.MODULES_ANALYTICS_4).getOrSyncAvailableAudiences();
    return audiences?.map(audience => audience.name);
  }, []);
  const configuredAudiences = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).getConfiguredAudiences(), []);
  const hasMatchingAudience = configuredAudiences?.some(audience => availableAudiences?.includes(audience));
  const noticesCount = _constants__WEBPACK_IMPORTED_MODULE_6__.AUDIENCE_INFO_NOTICES.length;
  const isDismissed = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).isPromptDismissed(_constants__WEBPACK_IMPORTED_MODULE_6__.AUDIENCE_INFO_NOTICE_SLUG), []);
  const hideNotice = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_9__.CORE_UI).getValue(_constants__WEBPACK_IMPORTED_MODULE_6__.AUDIENCE_INFO_NOTICE_HIDE_UI));
  const dismissCount = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).getPromptDismissCount(_constants__WEBPACK_IMPORTED_MODULE_6__.AUDIENCE_INFO_NOTICE_SLUG), []);
  const {
    dismissPrompt
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER);
  const onDismiss = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_13__.useCallback)(() => {
    if (undefined === dismissCount) {
      return;
    }
    (0,_js_util__WEBPACK_IMPORTED_MODULE_3__.trackEvent)(`${viewContext}_audiences-info-notice`, 'dismiss_notice', _constants__WEBPACK_IMPORTED_MODULE_6__.AUDIENCE_INFO_NOTICES[dismissCount].slug).finally(() => {
      const twoWeeksInSeconds = _js_util__WEBPACK_IMPORTED_MODULE_3__.WEEK_IN_SECONDS * 2;
      const expiry = dismissCount + 1 < noticesCount ? twoWeeksInSeconds : 0;
      dismissPrompt(_constants__WEBPACK_IMPORTED_MODULE_6__.AUDIENCE_INFO_NOTICE_SLUG, {
        expiresInSeconds: expiry
      });
    });
  }, [dismissCount, dismissPrompt, noticesCount, viewContext]);

  // Return null if there are no matching audiences or if the notice has been dismissed.
  if (hasMatchingAudience !== true || isDismissed || dismissCount === undefined || dismissCount >= noticesCount || hideNotice === true) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(WidgetNull, {});
  }
  const {
    slug,
    content
  } = _constants__WEBPACK_IMPORTED_MODULE_6__.AUDIENCE_INFO_NOTICES[dismissCount];
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(Widget, {
    noPadding: true,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(InfoNoticeWithIntersectionObserver, {
      content: content,
      dismissLabel: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Got it', 'google-site-kit'),
      onDismiss: onDismiss,
      onInView: () => {
        (0,_js_util__WEBPACK_IMPORTED_MODULE_3__.trackEvent)(`${viewContext}_audiences-info-notice`, 'view_notice', slug);
      }
    })
  });
}
InfoNoticeWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().elementType).isRequired,
  WidgetNull: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_4__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_8__.MODULE_SLUG_ANALYTICS_4
})(InfoNoticeWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/NoAudienceBannerWidget/NoAudienceBanner.js":
/*!**********************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/NoAudienceBannerWidget/NoAudienceBanner.js ***!
  \**********************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _svg_graphics_no_audience_banner_graphic_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/svg/graphics/no-audience-banner-graphic.svg */ "./svg/graphics/no-audience-banner-graphic.svg");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_components_Typography_P__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/Typography/P */ "./js/components/Typography/P.js");
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_components_LeanCTABanner__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/LeanCTABanner */ "./js/components/LeanCTABanner.js");
/* harmony import */ var _js_googlesitekit_datastore_location_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/googlesitekit/datastore/location/constants */ "./js/googlesitekit/datastore/location/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceSelectionPanel_constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/constants */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/constants.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * NoAudienceBanner component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */
















const NoAudienceBanner = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_17__.forwardRef)((props, ref) => {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_12__["default"])();
  const isViewOnly = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_13__["default"])();
  const didSetAudiences = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_10__.CORE_USER).didSetAudiences());
  const Icon = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_MODULES).getModuleIcon(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_15__.MODULE_SLUG_ANALYTICS_4));
  const adminSettingsURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_8__.CORE_SITE).getSiteKitAdminSettingsURL({
    scrollTo: 'visitor-groups'
  }));
  const {
    setValue
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_9__.CORE_UI);
  const {
    navigateTo
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_location_constants__WEBPACK_IMPORTED_MODULE_7__.CORE_LOCATION);
  const eventLabel = didSetAudiences ? 'no-longer-available' : 'none-selected';
  function handleSelectGroups() {
    (0,_js_util__WEBPACK_IMPORTED_MODULE_14__.trackEvent)(`${viewContext}_audiences-no-audiences`, 'select_groups', eventLabel).finally(() => {
      setValue(_js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceSelectionPanel_constants__WEBPACK_IMPORTED_MODULE_11__.AUDIENCE_SELECTION_PANEL_OPENED_KEY, true);
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsxs)(_js_components_LeanCTABanner__WEBPACK_IMPORTED_MODULE_6__["default"], {
    ref: ref,
    className: "googlesitekit-no-audience-banner",
    Icon: Icon,
    SVGGraphic: _svg_graphics_no_audience_banner_graphic_svg__WEBPACK_IMPORTED_MODULE_2__["default"],
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsxs)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_4__["default"], {
      children: [didSetAudiences && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('It looks like your visitor groups aren’t available anymore. <a>Select other groups</a>.', 'google-site-kit'), {
        a: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_3__["default"], {
          onClick: handleSelectGroups,
          secondary: true
        })
      }), !didSetAudiences && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You don’t have any visitor groups selected. <a>Select groups</a>.', 'google-site-kit'), {
        a: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_3__["default"], {
          onClick: handleSelectGroups,
          secondary: true
        })
      })]
    }), !isViewOnly && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsx)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_4__["default"], {
      children: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You can deactivate this widget in <a>Settings</a>.', 'google-site-kit'), {
        a: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_3__["default"], {
          onClick: () => {
            (0,_js_util__WEBPACK_IMPORTED_MODULE_14__.trackEvent)(`${viewContext}_audiences-no-audiences`, 'change_settings', eventLabel).finally(() => {
              navigateTo(adminSettingsURL);
            });
          },
          secondary: true
        })
      })
    })]
  });
});
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (NoAudienceBanner);

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/NoAudienceBannerWidget/index.js":
/*!***********************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/NoAudienceBannerWidget/index.js ***!
  \***********************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _NoAudienceBanner__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./NoAudienceBanner */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/NoAudienceBannerWidget/NoAudienceBanner.js");
/* harmony import */ var _js_util_withIntersectionObserver__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/util/withIntersectionObserver */ "./js/util/withIntersectionObserver.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * NoAudienceBannerWidget component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */










const NoAudienceBannerWithIntersectionObserver = (0,_js_util_withIntersectionObserver__WEBPACK_IMPORTED_MODULE_6__["default"])(_NoAudienceBanner__WEBPACK_IMPORTED_MODULE_5__["default"]);
function NoAudienceBannerWidget({
  Widget,
  WidgetNull
}) {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_8__["default"])();
  const availableAudiences = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    const audiences = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getOrSyncAvailableAudiences();
    return audiences?.map(audience => audience.name);
  });
  const configuredAudiences = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER).getConfiguredAudiences());
  const didSetAudiences = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER).didSetAudiences());
  const hasNoMatchingAudience = configuredAudiences?.every(audience => Array.isArray(availableAudiences) && !availableAudiences.includes(audience));
  if (!!configuredAudiences && (configuredAudiences?.length === 0 || hasNoMatchingAudience)) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(Widget, {
      noPadding: true,
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(NoAudienceBannerWithIntersectionObserver, {
        onInView: () => {
          (0,_js_util__WEBPACK_IMPORTED_MODULE_7__.trackEvent)(`${viewContext}_audiences-no-audiences`, 'view_banner', didSetAudiences ? 'no-longer-available' : 'none-selected');
        }
      })
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(WidgetNull, {});
}
NoAudienceBannerWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().elementType).isRequired,
  WidgetNull: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_1__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__.MODULE_SLUG_ANALYTICS_4
})(NoAudienceBannerWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/PrimaryUserSetupWidget/index.js":
/*!***********************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/PrimaryUserSetupWidget/index.js ***!
  \***********************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ PrimaryUserSetupWidget)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useMount.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceTilesWidget_AudienceTile_AudienceTileLoading__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileLoading */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileLoading.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceSegmentationErrorWidget__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationErrorWidget */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationErrorWidget/index.js");
/* harmony import */ var _js_util_errors__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util/errors */ "./js/util/errors.js");
/* harmony import */ var _js_modules_analytics_4_hooks_useEnableAudienceGroup__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/hooks/useEnableAudienceGroup */ "./js/modules/analytics-4/hooks/useEnableAudienceGroup.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * PrimaryUserSetupWidget component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Internal dependencies
 */







function PrimaryUserSetupWidget({
  Widget
}) {
  const {
    apiErrors,
    isSaving,
    failedAudiences,
    onEnableGroups
  } = (0,_js_modules_analytics_4_hooks_useEnableAudienceGroup__WEBPACK_IMPORTED_MODULE_5__["default"])();
  const isSettingUpAudiences = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).isSettingUpAudiences());
  (0,react_use__WEBPACK_IMPORTED_MODULE_7__["default"])(() => {
    if (isSettingUpAudiences) {
      return;
    }
    onEnableGroups();
  });
  if ((apiErrors.length || failedAudiences.length) && !isSaving) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceSegmentationErrorWidget__WEBPACK_IMPORTED_MODULE_3__["default"], {
      Widget: Widget,
      errors: apiErrors,
      onRetry: onEnableGroups,
      failedAudiences: failedAudiences,
      showRetryButton: !(0,_js_util_errors__WEBPACK_IMPORTED_MODULE_4__.isInsufficientPermissionsError)(apiErrors[0])
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(Widget, {
    className: "googlesitekit-widget-audience-tiles",
    noPadding: true,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      className: "googlesitekit-widget-audience-tiles__body",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(Widget, {
        noPadding: true,
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceTilesWidget_AudienceTile_AudienceTileLoading__WEBPACK_IMPORTED_MODULE_1__["default"], {})
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(Widget, {
        noPadding: true,
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceTilesWidget_AudienceTile_AudienceTileLoading__WEBPACK_IMPORTED_MODULE_1__["default"], {})
      })]
    })
  });
}
PrimaryUserSetupWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().elementType).isRequired
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/SecondaryUserSetupWidget/index.js":
/*!*************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/SecondaryUserSetupWidget/index.js ***!
  \*************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SecondaryUserSetupWidget)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useMount.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceTilesWidget_AudienceTile_AudienceTileLoading__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileLoading */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/AudienceTile/AudienceTileLoading.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceSegmentationErrorWidget__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationErrorWidget */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationErrorWidget/index.js");
/* harmony import */ var _js_util_errors__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util/errors */ "./js/util/errors.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * SecondaryUserSetupWidget component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */






function SecondaryUserSetupWidget({
  Widget
}) {
  const [setupError, setSetupError] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_6__.useState)(null);
  const isSettingUpAudiences = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).isSettingUpAudiences());
  const {
    enableSecondaryUserAudienceGroup
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4);
  async function handleRetry() {
    setSetupError(null);
    const {
      error
    } = await enableSecondaryUserAudienceGroup();
    if (error) {
      setSetupError(error);
    }
  }
  (0,react_use__WEBPACK_IMPORTED_MODULE_7__["default"])(() => {
    if (isSettingUpAudiences) {
      return;
    }
    (async () => {
      const {
        error
      } = await enableSecondaryUserAudienceGroup();
      if (error) {
        setSetupError(error);
      }
    })();
  });
  if (setupError) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceSegmentationErrorWidget__WEBPACK_IMPORTED_MODULE_3__["default"], {
      Widget: Widget,
      errors: setupError,
      onRetry: handleRetry,
      showRetryButton: !(0,_js_util_errors__WEBPACK_IMPORTED_MODULE_4__.isInsufficientPermissionsError)(setupError)
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(Widget, {
    className: "googlesitekit-widget-audience-tiles",
    noPadding: true,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
      className: "googlesitekit-widget-audience-tiles__body",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(Widget, {
        noPadding: true,
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceTilesWidget_AudienceTile_AudienceTileLoading__WEBPACK_IMPORTED_MODULE_1__["default"], {})
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(Widget, {
        noPadding: true,
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_modules_analytics_4_components_audience_segmentation_dashboard_AudienceTilesWidget_AudienceTile_AudienceTileLoading__WEBPACK_IMPORTED_MODULE_1__["default"], {})
      })]
    })
  });
}
SecondaryUserSetupWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().elementType).isRequired
};

/***/ }),

/***/ "./js/modules/analytics-4/components/audience-segmentation/dashboard/index.js":
/*!************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/audience-segmentation/dashboard/index.js ***!
  \************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   AudienceAreaFooter: () => (/* reexport safe */ _AudienceAreaFooter__WEBPACK_IMPORTED_MODULE_6__["default"]),
/* harmony export */   AudienceErrorModal: () => (/* reexport safe */ _AudienceErrorModal__WEBPACK_IMPORTED_MODULE_0__["default"]),
/* harmony export */   AudienceSegmentationErrorWidget: () => (/* reexport safe */ _AudienceSegmentationErrorWidget__WEBPACK_IMPORTED_MODULE_1__["default"]),
/* harmony export */   AudienceSegmentationIntroductoryOverlayNotification: () => (/* reexport safe */ _AudienceSegmentationIntroductoryOverlayNotification__WEBPACK_IMPORTED_MODULE_2__["default"]),
/* harmony export */   AudienceSegmentationSetupCTABanner: () => (/* reexport safe */ _AudienceSegmentationSetupCTABanner__WEBPACK_IMPORTED_MODULE_3__["default"]),
/* harmony export */   AudienceSelectionPanel: () => (/* reexport safe */ _AudienceSelectionPanel__WEBPACK_IMPORTED_MODULE_5__["default"]),
/* harmony export */   AudienceTilesWidget: () => (/* reexport safe */ _AudienceTilesWidget__WEBPACK_IMPORTED_MODULE_4__["default"]),
/* harmony export */   ChangeGroupsLink: () => (/* reexport safe */ _ChangeGroupsLink__WEBPACK_IMPORTED_MODULE_7__["default"]),
/* harmony export */   ConnectAnalyticsCTAWidget: () => (/* reexport safe */ _ConnectAnalyticsCTAWidget__WEBPACK_IMPORTED_MODULE_8__["default"]),
/* harmony export */   InfoNotice: () => (/* reexport safe */ _InfoNotice__WEBPACK_IMPORTED_MODULE_10__["default"]),
/* harmony export */   InfoNoticeWidget: () => (/* reexport safe */ _InfoNoticeWidget__WEBPACK_IMPORTED_MODULE_9__["default"]),
/* harmony export */   NoAudienceBannerWidget: () => (/* reexport safe */ _NoAudienceBannerWidget__WEBPACK_IMPORTED_MODULE_11__["default"]),
/* harmony export */   PrimaryUserSetupWidget: () => (/* reexport safe */ _PrimaryUserSetupWidget__WEBPACK_IMPORTED_MODULE_13__["default"]),
/* harmony export */   SecondaryUserSetupWidget: () => (/* reexport safe */ _SecondaryUserSetupWidget__WEBPACK_IMPORTED_MODULE_12__["default"])
/* harmony export */ });
/* harmony import */ var _AudienceErrorModal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AudienceErrorModal */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceErrorModal.js");
/* harmony import */ var _AudienceSegmentationErrorWidget__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AudienceSegmentationErrorWidget */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationErrorWidget/index.js");
/* harmony import */ var _AudienceSegmentationIntroductoryOverlayNotification__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AudienceSegmentationIntroductoryOverlayNotification */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationIntroductoryOverlayNotification.js");
/* harmony import */ var _AudienceSegmentationSetupCTABanner__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./AudienceSegmentationSetupCTABanner */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationSetupCTABanner.js");
/* harmony import */ var _AudienceTilesWidget__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./AudienceTilesWidget */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceTilesWidget/index.js");
/* harmony import */ var _AudienceSelectionPanel__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./AudienceSelectionPanel */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSelectionPanel/index.js");
/* harmony import */ var _AudienceAreaFooter__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./AudienceAreaFooter */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceAreaFooter.js");
/* harmony import */ var _ChangeGroupsLink__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ChangeGroupsLink */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/ChangeGroupsLink.js");
/* harmony import */ var _ConnectAnalyticsCTAWidget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ConnectAnalyticsCTAWidget */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/ConnectAnalyticsCTAWidget.js");
/* harmony import */ var _InfoNoticeWidget__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./InfoNoticeWidget */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/InfoNoticeWidget/index.js");
/* harmony import */ var _InfoNotice__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./InfoNotice */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/InfoNotice.js");
/* harmony import */ var _NoAudienceBannerWidget__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./NoAudienceBannerWidget */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/NoAudienceBannerWidget/index.js");
/* harmony import */ var _SecondaryUserSetupWidget__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./SecondaryUserSetupWidget */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/SecondaryUserSetupWidget/index.js");
/* harmony import */ var _PrimaryUserSetupWidget__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./PrimaryUserSetupWidget */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/PrimaryUserSetupWidget/index.js");
/**
 * Audience Segmentation dashboard components.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
















/***/ }),

/***/ "./js/modules/analytics-4/components/common/AccountCreate/AccountField.js":
/*!********************************************************************************!*\
  !*** ./js/modules/analytics-4/components/common/AccountCreate/AccountField.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AccountField)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _CreateAccountField__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CreateAccountField */ "./js/modules/analytics-4/components/common/AccountCreate/CreateAccountField.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AccountField component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */






function AccountField() {
  const value = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_5__["default"])(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.FORM_ACCOUNT_CREATE, 'accountName');
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_FORMS);
  const setValue = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_7__.useCallback)(accountName => {
    setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.FORM_ACCOUNT_CREATE, {
      accountName
    });
  }, [setValues]);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_CreateAccountField__WEBPACK_IMPORTED_MODULE_1__["default"], {
    label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Account', 'google-site-kit'),
    hasError: !value,
    value: value,
    setValue: setValue,
    name: "account"
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/common/AccountCreate/CountrySelect.js":
/*!*********************************************************************************!*\
  !*** ./js/modules/analytics-4/components/common/AccountCreate/CountrySelect.js ***!
  \*********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ CountrySelect)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_modules_analytics_4_utils_countries_timezones__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/countries-timezones */ "./js/modules/analytics-4/utils/countries-timezones.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * CountrySelect component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */







function CountrySelect() {
  const value = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_6__["default"])(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.FORM_ACCOUNT_CREATE, 'countryCode');
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_FORMS);
  const onEnhancedChange = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.useCallback)((i, item) => {
    const newCountryCode = item.dataset.value;
    if (newCountryCode !== value && _js_modules_analytics_4_utils_countries_timezones__WEBPACK_IMPORTED_MODULE_3__.countriesByCode[newCountryCode]) {
      setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.FORM_ACCOUNT_CREATE, {
        countryCode: newCountryCode,
        timezone:
        // eslint-disable-next-line sitekit/acronym-case
        _js_modules_analytics_4_utils_countries_timezones__WEBPACK_IMPORTED_MODULE_3__.countriesByCode[newCountryCode].defaultTimeZoneId
      });
    }
  }, [setValues, value]);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.Select, {
    className: "googlesitekit-analytics__select-country",
    label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Country', 'google-site-kit'),
    value: value,
    onEnhancedChange: onEnhancedChange,
    enhanced: true,
    outlined: true,
    children: _js_modules_analytics_4_utils_countries_timezones__WEBPACK_IMPORTED_MODULE_3__.allCountries.map(({
      countryCode,
      displayName
    }, i) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.Option, {
      value: countryCode,
      children: displayName
    }, i))
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/common/AccountCreate/CreateAccountField.js":
/*!**************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/common/AccountCreate/CreateAccountField.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ CreateAccountField)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * CreateAccountField component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */


function CreateAccountField({
  hasError,
  value,
  setValue,
  name,
  label
}) {
  // Ensure field doesn't render until default value is available, fixing a potential render bug.
  if (value === undefined) {
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.TextField, {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('mdc-text-field', {
      'mdc-text-field--error': hasError
    }),
    label: label,
    name: name,
    onChange: event => {
      setValue(event.target.value, name);
    },
    value: value,
    id: `googlesitekit_analytics_account_create_${name}`,
    outlined: true
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/common/AccountCreate/PropertyField.js":
/*!*********************************************************************************!*\
  !*** ./js/modules/analytics-4/components/common/AccountCreate/PropertyField.js ***!
  \*********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ PropertyField)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_hooks_useFeature__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/hooks/useFeature */ "./js/hooks/useFeature.js");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _CreateAccountField__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./CreateAccountField */ "./js/modules/analytics-4/components/common/AccountCreate/CreateAccountField.js");
/* harmony import */ var _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common */ "./js/modules/analytics-4/components/common/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * PropertyField component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */










function PropertyField() {
  const setupFlowRefreshEnabled = (0,_js_hooks_useFeature__WEBPACK_IMPORTED_MODULE_2__.useFeature)('setupFlowRefresh');
  const value = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_3__["default"])(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.FORM_ACCOUNT_CREATE, 'propertyName');
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_FORMS);
  const isAnalyticsConnected = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_MODULES).isModuleConnected(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_7__.MODULE_SLUG_ANALYTICS_4));
  const setValue = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_11__.useCallback)(propertyName => {
    setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.FORM_ACCOUNT_CREATE, {
      propertyName
    });
  }, [setValues]);

  // Ensure the hint is not shown when editing Analytics settings.
  const showHint = setupFlowRefreshEnabled && !isAnalyticsConnected;
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_11__.Fragment, {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_CreateAccountField__WEBPACK_IMPORTED_MODULE_8__["default"], {
      label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Property', 'google-site-kit'),
      value: value,
      hasError: !value,
      setValue: setValue,
      name: "property"
    }), showHint && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_9__.PropertyHint, {})]
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/common/AccountCreate/TimezoneSelect.js":
/*!**********************************************************************************!*\
  !*** ./js/modules/analytics-4/components/common/AccountCreate/TimezoneSelect.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ TimezoneSelect)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_modules_analytics_4_utils_countries_timezones__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/countries-timezones */ "./js/modules/analytics-4/utils/countries-timezones.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * TimezoneSelect component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */







function TimezoneSelect() {
  const countryCode = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_6__["default"])(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.FORM_ACCOUNT_CREATE, 'countryCode');
  const value = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_6__["default"])(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.FORM_ACCOUNT_CREATE, 'timezone');
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_FORMS);
  const onEnhancedChange = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.useCallback)((i, item) => {
    setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.FORM_ACCOUNT_CREATE, {
      timezone: item.dataset.value
    });
  }, [setValues]);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.Select, {
    className: "googlesitekit-analytics__select-timezone",
    label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Timezone', 'google-site-kit'),
    value: value,
    onEnhancedChange: onEnhancedChange,
    disabled: !countryCode,
    enhanced: true,
    outlined: true,
    children: (_js_modules_analytics_4_utils_countries_timezones__WEBPACK_IMPORTED_MODULE_3__.timeZonesByCountryCode[countryCode] || []).map(
    // eslint-disable-next-line sitekit/acronym-case
    ({
      timeZoneId,
      displayName
    }, i) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.Option, {
      // eslint-disable-next-line sitekit/acronym-case
      value: timeZoneId,
      children: displayName
    }, i))
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/common/AccountCreate/WebDataStreamField.js":
/*!**************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/common/AccountCreate/WebDataStreamField.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ WebDataStreamField)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_hooks_useFeature__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/hooks/useFeature */ "./js/hooks/useFeature.js");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _CreateAccountField__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./CreateAccountField */ "./js/modules/analytics-4/components/common/AccountCreate/CreateAccountField.js");
/* harmony import */ var _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common */ "./js/modules/analytics-4/components/common/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * WebDataStreamField component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */










function WebDataStreamField() {
  const setupFlowRefreshEnabled = (0,_js_hooks_useFeature__WEBPACK_IMPORTED_MODULE_2__.useFeature)('setupFlowRefresh');
  const value = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_3__["default"])(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.FORM_ACCOUNT_CREATE, 'dataStreamName');
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_FORMS);
  const isAnalyticsConnected = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_MODULES).isModuleConnected(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_7__.MODULE_SLUG_ANALYTICS_4));
  const setValue = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_11__.useCallback)(dataStreamName => {
    setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.FORM_ACCOUNT_CREATE, {
      dataStreamName
    });
  }, [setValues]);

  // Ensure the hint is not shown when editing Analytics settings.
  const showHint = setupFlowRefreshEnabled && !isAnalyticsConnected;
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_11__.Fragment, {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_CreateAccountField__WEBPACK_IMPORTED_MODULE_8__["default"], {
      label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Web data stream', 'google-site-kit'),
      value: value,
      hasError: !value,
      setValue: setValue,
      name: "dataStream"
    }), showHint && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_9__.WebDataStreamHint, {})]
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/common/AccountCreate/index.js":
/*!*************************************************************************!*\
  !*** ./js/modules/analytics-4/components/common/AccountCreate/index.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AccountCreate)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_34___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_34__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! @wordpress/url */ "../node_modules/@wordpress/url/build-module/get-query-arg.js");
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-api */ "googlesitekit-api");
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _js_hooks_useFeature__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/hooks/useFeature */ "./js/hooks/useFeature.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_location_constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/googlesitekit/datastore/location/constants */ "./js/googlesitekit/datastore/location/constants.js");
/* harmony import */ var _js_util_errors__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/js/util/errors */ "./js/util/errors.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_modules_analytics_4_utils_account__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/account */ "./js/modules/analytics-4/utils/account.js");
/* harmony import */ var _js_material_components__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/js/material-components */ "./js/material-components/index.js");
/* harmony import */ var _js_components_StoreErrorNotices__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/js/components/StoreErrorNotices */ "./js/components/StoreErrorNotices.js");
/* harmony import */ var _TimezoneSelect__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./TimezoneSelect */ "./js/modules/analytics-4/components/common/AccountCreate/TimezoneSelect.js");
/* harmony import */ var _AccountField__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./AccountField */ "./js/modules/analytics-4/components/common/AccountCreate/AccountField.js");
/* harmony import */ var _PropertyField__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./PropertyField */ "./js/modules/analytics-4/components/common/AccountCreate/PropertyField.js");
/* harmony import */ var _CountrySelect__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./CountrySelect */ "./js/modules/analytics-4/components/common/AccountCreate/CountrySelect.js");
/* harmony import */ var _WebDataStreamField__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./WebDataStreamField */ "./js/modules/analytics-4/components/common/AccountCreate/WebDataStreamField.js");
/* harmony import */ var _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common */ "./js/modules/analytics-4/components/common/index.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_components_conversion_tracking_SetupPluginConversionTrackingNotice__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! @/js/components/conversion-tracking/SetupPluginConversionTrackingNotice */ "./js/components/conversion-tracking/SetupPluginConversionTrackingNotice.js");
/* harmony import */ var _js_components_Typography__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! @/js/components/Typography */ "./js/components/Typography/index.js");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/* harmony import */ var _js_components_Typography_P__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! @/js/components/Typography/P */ "./js/components/Typography/P.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_components_Null__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! @/js/components/Null */ "./js/components/Null.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * AccountCreate component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */





























function AccountCreate({
  className
}) {
  const setupFlowRefreshEnabled = (0,_js_hooks_useFeature__WEBPACK_IMPORTED_MODULE_5__.useFeature)('setupFlowRefresh');
  const [isNavigating, setIsNavigating] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_31__.useState)(false);
  const accounts = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getAccountSummaries());
  const hasResolvedAccounts = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).hasFinishedResolution('getAccountSummaries'));
  const accountTicketTermsOfServiceURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getAccountTicketTermsOfServiceURL());
  const canSubmitAccountCreate = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).canSubmitAccountCreate());
  const isDoingCreateAccount = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).isDoingCreateAccount());
  const hasEditScope = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_9__.CORE_USER).hasScope(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.EDIT_SCOPE));
  const hasGTMScope = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_9__.CORE_USER).hasScope(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.GTM_SCOPE));
  const hasAccountCreateForm = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => select(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_10__.CORE_FORMS).hasForm(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.FORM_ACCOUNT_CREATE));
  const autoSubmit = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_26__["default"])(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.FORM_ACCOUNT_CREATE, 'autoSubmit');
  const siteURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_8__.CORE_SITE).getReferenceSiteURL());
  const siteName = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_8__.CORE_SITE).getSiteName());
  const timezone = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_8__.CORE_SITE).getTimezone());
  const pluginConversionsDocumentationURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => {
    return select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_8__.CORE_SITE).getDocumentationLinkURL('plugin-conversion-tracking');
  });
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_23__["default"])();
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_10__.CORE_FORMS);
  const {
    navigateTo
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useDispatch)(_js_googlesitekit_datastore_location_constants__WEBPACK_IMPORTED_MODULE_11__.CORE_LOCATION);
  const {
    createAccount
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4);
  const {
    setPermissionScopeError
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_9__.CORE_USER);
  const {
    setConversionTrackingEnabled,
    saveConversionTrackingSettings
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useDispatch)(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_8__.CORE_SITE);
  const hasRequiredScope = hasEditScope;

  // Redirect if the accountTicketTermsOfServiceURL is set.
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_31__.useEffect)(() => {
    if (accountTicketTermsOfServiceURL) {
      (async () => {
        await (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__.invalidateCache)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_7__.MODULE_SLUG_ANALYTICS_4);
        navigateTo(accountTicketTermsOfServiceURL);
      })();
    }
  }, [accountTicketTermsOfServiceURL, navigateTo]);

  // Set form defaults on initial render.
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_31__.useEffect)(() => {
    // Only set the form if not already present in store.
    // e.g. after a snapshot has been restored.
    if (!hasAccountCreateForm) {
      setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.FORM_ACCOUNT_CREATE, (0,_js_modules_analytics_4_utils_account__WEBPACK_IMPORTED_MODULE_14__.getAccountDefaults)({
        siteName,
        siteURL,
        timezone
      }));
    }
  }, [hasAccountCreateForm, siteName, siteURL, timezone, setValues]);
  const showProgress = (0,_wordpress_url__WEBPACK_IMPORTED_MODULE_32__.getQueryArg)(location.href, 'showProgress');
  const isInitialSetupFlow = !!showProgress && setupFlowRefreshEnabled;
  const handleSubmit = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_31__.useCallback)(async () => {
    const scopes = [];
    if (!hasEditScope) {
      scopes.push(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.EDIT_SCOPE);
    }
    // The GTM scope should be granted for GTE support, but
    // it is possible for it not to be at this point.
    // This saves an extra OAuth flow and is necessary for the
    // Google tag sync at the end of the post-provisioning flow.
    if (!hasGTMScope) {
      scopes.push(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.GTM_SCOPE);
    }

    // If scope not granted, trigger scope error right away. These are
    // typically handled automatically based on API responses, but
    // this particular case has some special handling to improve UX.
    if (scopes.length > 0) {
      // When state is restored, auto-submit the request again.
      setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.FORM_ACCOUNT_CREATE, {
        autoSubmit: true
      });
      setPermissionScopeError({
        code: _js_util_errors__WEBPACK_IMPORTED_MODULE_12__.ERROR_CODE_MISSING_REQUIRED_SCOPE,
        message: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Additional permissions are required to create a new Analytics account.', 'google-site-kit'),
        data: {
          status: 403,
          scopes,
          skipModal: true
        }
      });
      return;
    }
    setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.FORM_ACCOUNT_CREATE, {
      autoSubmit: false
    });
    if (isInitialSetupFlow) {
      await (0,_js_util__WEBPACK_IMPORTED_MODULE_13__.trackEvent)(`${viewContext}_setup`, 'setup_flow_v3_create_analytics_account');
    } else {
      await (0,_js_util__WEBPACK_IMPORTED_MODULE_13__.trackEvent)(`${viewContext}_analytics`, 'create_account', 'proxy');
    }
    const {
      error
    } = await createAccount({
      showProgress: showProgress === 'true'
    });
    if (!error) {
      setConversionTrackingEnabled(true);
      await saveConversionTrackingSettings();
      setIsNavigating(true);
    }
  }, [hasEditScope, hasGTMScope, setValues, isInitialSetupFlow, createAccount, showProgress, setPermissionScopeError, viewContext, setConversionTrackingEnabled, saveConversionTrackingSettings]);

  // If the user ends up back on this component with the required scope granted,
  // and already submitted the form, trigger the submit again.
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_31__.useEffect)(() => {
    if (hasRequiredScope && autoSubmit) {
      handleSubmit();
    }
  }, [hasRequiredScope, autoSubmit, handleSubmit]);

  // If the user clicks "Back", rollback settings to restore saved values, if any.
  const {
    rollbackSettings
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4);
  const handleBack = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_31__.useCallback)(() => rollbackSettings(), [rollbackSettings]);
  if (isDoingCreateAccount || isNavigating || !hasResolvedAccounts || hasRequiredScope === undefined) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_4__.ProgressBar, {});
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsxs)("div", {
    className: className,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsx)(_js_components_StoreErrorNotices__WEBPACK_IMPORTED_MODULE_16__["default"], {
      moduleSlug: "analytics-4",
      storeName: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4
    }), !isInitialSetupFlow && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsx)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_25__["default"], {
      as: "h3",
      type: "title",
      size: "large",
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Create your Analytics account', 'google-site-kit')
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsx)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_27__["default"], {
      size: isInitialSetupFlow ? 'large' : undefined,
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('We’ve pre-filled the required information for your new account. Confirm or edit any details:', 'google-site-kit')
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsxs)("div", {
      className: "googlesitekit-setup-module__inputs",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsx)(_js_material_components__WEBPACK_IMPORTED_MODULE_15__.Cell, {
        size: 6,
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsx)(_AccountField__WEBPACK_IMPORTED_MODULE_18__["default"], {})
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsx)(_js_material_components__WEBPACK_IMPORTED_MODULE_15__.Cell, {
        size: 6,
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsx)(_PropertyField__WEBPACK_IMPORTED_MODULE_19__["default"], {})
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsx)(_js_material_components__WEBPACK_IMPORTED_MODULE_15__.Cell, {
        size: 6,
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsx)(_WebDataStreamField__WEBPACK_IMPORTED_MODULE_21__["default"], {})
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsxs)("div", {
      className: "googlesitekit-setup-module__inputs",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsx)(_js_material_components__WEBPACK_IMPORTED_MODULE_15__.Cell, {
        size: 6,
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsx)(_CountrySelect__WEBPACK_IMPORTED_MODULE_20__["default"], {})
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsx)(_js_material_components__WEBPACK_IMPORTED_MODULE_15__.Cell, {
        size: 6,
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsx)(_TimezoneSelect__WEBPACK_IMPORTED_MODULE_17__["default"], {})
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsxs)("div", {
      className: "googlesitekit-setup-module__inputs",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsx)(_js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_22__.EnhancedMeasurementSwitch, {
        formName: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.FORM_ACCOUNT_CREATE,
        className: "googlesitekit-margin-bottom-0"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsx)(_js_components_conversion_tracking_SetupPluginConversionTrackingNotice__WEBPACK_IMPORTED_MODULE_24__["default"], {
        className: classnames__WEBPACK_IMPORTED_MODULE_0___default()({
          'googlesitekit-margin-top-0': !setupFlowRefreshEnabled
        }),
        message: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_33__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('To track how visitors interact with your site, Site Kit will enable plugin conversion tracking. You can always disable it in settings. <LearnMoreLink />', 'google-site-kit'), {
          LearnMoreLink: setupFlowRefreshEnabled ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_28__["default"], {
            href: pluginConversionsDocumentationURL,
            external: true,
            children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Learn more', 'google-site-kit')
          }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsx)(_js_components_Null__WEBPACK_IMPORTED_MODULE_29__["default"], {})
        })
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsxs)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_27__["default"], {
      className: "googlesitekit-analytics-setup__analytics-create-account-info",
      size: setupFlowRefreshEnabled ? 'small' : undefined,
      children: [hasRequiredScope && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsx)("span", {
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('You will be redirected to Google Analytics to accept the terms of service.', 'google-site-kit')
      }), !hasRequiredScope && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsx)("span", {
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('You will need to give Site Kit permission to create an Analytics account on your behalf and also accept the Google Analytics terms of service.', 'google-site-kit')
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsxs)("div", {
      className: "googlesitekit-setup-module__action",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_4__.Button, {
        disabled: !canSubmitAccountCreate,
        onClick: handleSubmit,
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Create Account', 'google-site-kit')
      }), accounts && !!accounts.length && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_30__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_4__.Button, {
        className: "googlesitekit-setup-module__sub-action",
        onClick: handleBack,
        tertiary: true,
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Back', 'google-site-kit')
      })]
    })]
  });
}
AccountCreate.propTypes = {
  className: (prop_types__WEBPACK_IMPORTED_MODULE_34___default().string)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/common/AccountCreateLegacy.js":
/*!*************************************************************************!*\
  !*** ./js/modules/analytics-4/components/common/AccountCreateLegacy.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AccountCreateLegacy)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_components_StoreErrorNotices__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/StoreErrorNotices */ "./js/components/StoreErrorNotices.js");
/* harmony import */ var _js_components_Typography_P__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/Typography/P */ "./js/components/Typography/P.js");
/* harmony import */ var _CreatePropertyInfoNotice__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./CreatePropertyInfoNotice */ "./js/modules/analytics-4/components/common/CreatePropertyInfoNotice.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Legacy Account Creation component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */









function AccountCreateLegacy() {
  const accounts = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getAccountSummaries());
  const hasResolvedAccounts = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).hasFinishedResolution('getAccountSummaries'));
  const accountID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getAccountID());
  const isCreateAccount = _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.ACCOUNT_CREATE === accountID;
  const createAccountURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getServiceURL({
    path: '/provision/SignUp'
  }));
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_8__["default"])();
  const createAccountHandler = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_10__.useCallback)(async event => {
    event.preventDefault();
    await (0,_js_util__WEBPACK_IMPORTED_MODULE_3__.trackEvent)(`${viewContext}_analytics`, 'create_account', 'custom-oauth');
    __webpack_require__.g.open(createAccountURL, '_blank');
  }, [createAccountURL, viewContext]);
  const {
    resetAccountSummaries,
    resetAccountSettings
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4);
  const refetchAccountsHandler = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_10__.useCallback)(() => {
    resetAccountSummaries();
    resetAccountSettings();
  }, [resetAccountSettings, resetAccountSummaries]);
  if (!hasResolvedAccounts) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.ProgressBar, {});
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("div", {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_CreatePropertyInfoNotice__WEBPACK_IMPORTED_MODULE_7__["default"], {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_components_StoreErrorNotices__WEBPACK_IMPORTED_MODULE_5__["default"], {
      moduleSlug: "analytics-4",
      storeName: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4
    }), !isCreateAccount && accounts && accounts.length === 0 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_6__["default"], {
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Looks like you don’t have an Analytics account yet. Once you create it, click on "Re-fetch my account" and Site Kit will locate it.', 'google-site-kit')
    }), isCreateAccount && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_10__.Fragment, {
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_6__["default"], {
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('To create a new account, click the button below which will open the Google Analytics account creation screen in a new window.', 'google-site-kit')
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_6__["default"], {
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Once completed, click the link below to re-fetch your accounts to continue.', 'google-site-kit')
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("div", {
      className: "googlesitekit-setup-module__action",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.Button, {
        onClick: createAccountHandler,
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Create an account', 'google-site-kit')
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", {
        className: "googlesitekit-setup-module__sub-action",
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.Button, {
          onClick: refetchAccountsHandler,
          tertiary: true,
          children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Re-fetch My Account', 'google-site-kit')
        })
      })]
    })]
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/common/AccountSelect.js":
/*!*******************************************************************!*\
  !*** ./js/modules/analytics-4/components/common/AccountSelect.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AccountSelect)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Analytics-4 Account Select component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */






function AccountSelect({
  hasModuleAccess,
  onChange
}) {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_5__["default"])();
  const accountID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getAccountID());
  const accounts = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getAccountSummaries());
  const hasResolvedAccounts = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).hasFinishedResolution('getAccountSummaries'));
  const {
    selectAccount
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4);
  const onAccountChange = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_7__.useCallback)((index, item) => {
    const newAccountID = item.dataset.value;
    if (accountID !== newAccountID) {
      selectAccount(newAccountID);
      const action = newAccountID === _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.ACCOUNT_CREATE ? 'change_account_new' : 'change_account';
      (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.trackEvent)(`${viewContext}_analytics`, action);
      if (onChange) {
        onChange();
      }
    }
  }, [accountID, selectAccount, viewContext, onChange]);
  if (!hasResolvedAccounts) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.ProgressBar, {
      small: true
    });
  }
  if (hasModuleAccess === false) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.Select, {
      className: "googlesitekit-analytics__select-account",
      label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Account', 'google-site-kit'),
      value: accountID,
      enhanced: true,
      outlined: true,
      disabled: true,
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.Option, {
        value: accountID,
        children: accountID
      })
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.Select, {
    className: "googlesitekit-analytics__select-account",
    label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Account', 'google-site-kit'),
    value: accountID,
    onEnhancedChange: onAccountChange,
    enhanced: true,
    outlined: true,
    children: (accounts || []).concat({
      _id: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.ACCOUNT_CREATE,
      displayName: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Set up a new account', 'google-site-kit')
    }).map(({
      _id,
      displayName
    }, index) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.Option, {
      value: _id,
      children: displayName
    }, index))
  });
}
AccountSelect.propTypes = {
  hasModuleAccess: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/common/CreatePropertyInfoNotice.js":
/*!******************************************************************************!*\
  !*** ./js/modules/analytics-4/components/common/CreatePropertyInfoNotice.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ CreatePropertyInfoNotice)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_components_Notice_index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/Notice/index */ "./js/components/Notice/index.js");
/* harmony import */ var _js_components_Notice_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/Notice/constants */ "./js/components/Notice/constants.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Analytics GA4 Notice component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */






function CreatePropertyInfoNotice() {
  const documentationURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    return select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_SITE).getDocumentationLinkURL('ga4');
  });
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_js_components_Notice_index__WEBPACK_IMPORTED_MODULE_4__["default"], {
    type: _js_components_Notice_constants__WEBPACK_IMPORTED_MODULE_5__.TYPES.INFO,
    description: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_7__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Got a Google Analytics property and want to find out how to use it with Site Kit? <a>Learn more</a>', 'google-site-kit'), {
      a: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_2__["default"], {
        href: documentationURL,
        external: true
      })
    })
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/common/EnhancedMeasurementSwitch.js":
/*!*******************************************************************************!*\
  !*** ./js/modules/analytics-4/components/common/EnhancedMeasurementSwitch.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ EnhancedMeasurementSwitch)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_15__);
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useMount.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_components_SupportLink__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/SupportLink */ "./js/components/SupportLink.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _svg_icons_tick_svg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/svg/icons/tick.svg */ "./svg/icons/tick.svg");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * EnhancedMeasurementSwitch component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */




/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */










function EnhancedMeasurementSwitch({
  className,
  onClick,
  disabled = false,
  loading = false,
  formName = _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.ENHANCED_MEASUREMENT_FORM,
  isEnhancedMeasurementAlreadyEnabled = false,
  showTick = false
}) {
  const isEnhancedMeasurementEnabled = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_10__["default"])(formName, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.ENHANCED_MEASUREMENT_ENABLED);
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_8__["default"])();
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_FORMS);
  const handleClick = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_12__.useCallback)(() => {
    setValues(formName, {
      [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.ENHANCED_MEASUREMENT_ENABLED]: !isEnhancedMeasurementEnabled
    });
    (0,_js_util__WEBPACK_IMPORTED_MODULE_7__.trackEvent)(`${viewContext}_analytics`,
    // If the current status of enhanced measurement is enabled,
    // then it means that we disabled it, otherwise enabled it.
    isEnhancedMeasurementEnabled ? 'deactivate_enhanced_measurement' : 'activate_enhanced_measurement');
    onClick?.();
  }, [formName, isEnhancedMeasurementEnabled, onClick, setValues, viewContext]);
  (0,react_use__WEBPACK_IMPORTED_MODULE_13__["default"])(() => {
    // Ensure the Enhanced Measurement activation banner won't be shown if we've updated the setting
    // via the switch.
    setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.ENHANCED_MEASUREMENT_FORM, {
      [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.ENHANCED_MEASUREMENT_SHOULD_DISMISS_ACTIVATION_BANNER]: true
    });
  });
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)("div", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-analytics-enable-enhanced-measurement', className, {
      'googlesitekit-analytics-enable-enhanced-measurement--loading': loading
    }),
    children: [loading && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_3__.ProgressBar, {
      className: "googlesitekit-analytics-enable-enhanced-measurement__progress--settings-edit",
      small: true
    }), !loading && isEnhancedMeasurementAlreadyEnabled && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxs)("div", {
      className: "googlesitekit-analytics-enable-enhanced-measurement__already-enabled-label",
      children: [showTick && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("div", {
        className: "googlesitekit-analytics-enable-enhanced-measurement__already-enabled-tick",
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_svg_icons_tick_svg__WEBPACK_IMPORTED_MODULE_9__["default"], {})
      }), (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Enhanced measurement is enabled for this web data stream', 'google-site-kit')]
    }), !loading && !isEnhancedMeasurementAlreadyEnabled && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_3__.Switch, {
      label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Enable enhanced measurement', 'google-site-kit'),
      checked: isEnhancedMeasurementEnabled,
      disabled: disabled,
      onClick: handleClick,
      hideLabel: false
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("p", {
      className: "googlesitekit-module-settings-group__helper-text",
      children: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_14__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('This allows you to measure interactions with your content (e.g. file downloads, form completions, video views). <a>Learn more</a>', 'google-site-kit'), {
        a: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_SupportLink__WEBPACK_IMPORTED_MODULE_6__["default"], {
          path: "/analytics/answer/9216061",
          external: true
        })
      })
    })]
  });
}
EnhancedMeasurementSwitch.propTypes = {
  onClick: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().func),
  disabled: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().bool),
  loading: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().bool),
  isEnhancedMeasurementAlreadyEnabled: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().bool),
  showTick: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().bool)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/common/PropertyHint.js":
/*!******************************************************************!*\
  !*** ./js/modules/analytics-4/components/common/PropertyHint.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ PropertyHint)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_components_setup_StepHint__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/setup/StepHint */ "./js/components/setup/StepHint/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Analytics PropertyHint component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */





function PropertyHint() {
  const learnMoreLink = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_SITE).getDocumentationLinkURL('ga4-property'));
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_setup_StepHint__WEBPACK_IMPORTED_MODULE_4__["default"], {
    leadingText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('What is an Analytics property?', 'google-site-kit'),
    tooltipText: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('An Analytics property is a container for data collected from a website. It represents a specific website, and within a property, you can view reports, manage data collection, attribution, privacy settings, and product links. <a>Learn more</a>', 'google-site-kit'), {
      a: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_3__["default"], {
        href: learnMoreLink,
        external: true,
        hideExternalIndicator: true
      })
    })
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/common/PropertySelect.js":
/*!********************************************************************!*\
  !*** ./js/modules/analytics-4/components/common/PropertySelect.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ PropertySelect)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/validation */ "./js/modules/analytics-4/utils/validation.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * GA4 Property Select component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */







function PropertySelect(props) {
  const {
    isDisabled,
    hasModuleAccess,
    className,
    onChange = () => {}
  } = props;
  const accountID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getAccountID());
  const properties = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => hasModuleAccess && !isDisabled ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getPropertySummaries(accountID) || [] : null);
  const propertyID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getPropertyID());
  const isLoading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => {
    if (isDisabled) {
      return false;
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).isLoadingPropertySummaries() || select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).isLoadingWebDataStreams({
      hasModuleAccess
    });
  });
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_7__["default"])();
  const {
    selectProperty
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4);
  const onPropertyChange = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_9__.useCallback)((index, {
    dataset
  }) => {
    const newPropertyID = dataset.value;
    if (propertyID === newPropertyID) {
      return;
    }
    selectProperty(newPropertyID);
    (0,_js_util__WEBPACK_IMPORTED_MODULE_6__.trackEvent)(`${viewContext}_analytics`, newPropertyID === _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.PROPERTY_CREATE ? 'change_property_new' : 'change_property', 'ga4');
    onChange();
  }, [onChange, propertyID, selectProperty, viewContext]);
  if (!(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_5__.isValidAccountID)(accountID)) {
    return null;
  } else if (isLoading) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.ProgressBar, {
      mobileVerticalSpacing: 76,
      desktopVerticalSpacing: 84,
      small: true
    });
  }
  const isValidSelection = propertyID === undefined || propertyID === '' ? true : (0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_5__.isValidPropertySelection)(propertyID);
  if (hasModuleAccess === false) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.Select, {
      className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-analytics-4__select-property', className),
      label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Property', 'google-site-kit'),
      value: propertyID,
      enhanced: true,
      outlined: true,
      disabled: true,
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.Option, {
        value: propertyID,
        children: propertyID
      })
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.Select, {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-analytics-4__select-property', className, {
      'mdc-select--invalid': !isValidSelection,
      'googlesitekit-analytics-4__select-property--loaded': !isDisabled && !isLoading
    }),
    label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Property', 'google-site-kit'),
    value: propertyID,
    onEnhancedChange: onPropertyChange,
    disabled: isDisabled,
    enhanced: true,
    outlined: true,
    children: (properties || []).concat({
      _id: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.PROPERTY_CREATE,
      displayName: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Set up a new property', 'google-site-kit')
    }).map(({
      _id,
      displayName
    }) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.Option, {
      value: _id,
      children: _id === _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.PROPERTY_CREATE ? displayName : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.sprintf)(/* translators: 1: Property name. 2: Property ID. */
      (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__._x)('%1$s (%2$s)', 'Analytics property name and ID', 'google-site-kit'), displayName, _id)
    }, _id))
  });
}
PropertySelect.propTypes = {
  isDisabled: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().bool),
  hasModuleAccess: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().bool),
  className: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().string),
  onChange: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().func)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/common/TrackingExclusionSwitches.js":
/*!*******************************************************************************!*\
  !*** ./js/modules/analytics-4/components/common/TrackingExclusionSwitches.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   TRACKING_CONTENT_CREATORS: () => (/* binding */ TRACKING_CONTENT_CREATORS),
/* harmony export */   TRACKING_LOGGED_IN_USERS: () => (/* binding */ TRACKING_LOGGED_IN_USERS),
/* harmony export */   "default": () => (/* binding */ TrackingExclusionSwitches),
/* harmony export */   trackingExclusionLabels: () => (/* binding */ trackingExclusionLabels)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_components_Typography__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/Typography */ "./js/components/Typography/index.js");
/* harmony import */ var _js_components_Typography_P__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/Typography/P */ "./js/components/Typography/P.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Analytics 4 Tracking Exclusion switches component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */






const TRACKING_LOGGED_IN_USERS = 'loggedinUsers';
const TRACKING_CONTENT_CREATORS = 'contentCreators';
const trackingExclusionLabels = {
  [TRACKING_LOGGED_IN_USERS]: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('All logged-in users', 'google-site-kit'),
  [TRACKING_CONTENT_CREATORS]: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Users that can write posts', 'google-site-kit')
};
function TrackingExclusionSwitches() {
  const trackingDisabled = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getTrackingDisabled());
  const {
    setTrackingDisabled
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4);
  let message;
  if (trackingDisabled && trackingDisabled.includes(TRACKING_LOGGED_IN_USERS)) {
    message = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('All logged-in users will be excluded from Analytics tracking', 'google-site-kit');
  } else if (trackingDisabled && trackingDisabled.includes(TRACKING_CONTENT_CREATORS)) {
    message = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Users that can write posts will be excluded from Analytics tracking', 'google-site-kit');
  } else {
    message = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('All logged-in users will be included in Analytics tracking', 'google-site-kit');
  }
  const updateTrackingDisabled = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_7__.useCallback)((users, exclude) => {
    const trackingDisabledArray = exclude ? trackingDisabled.concat(users) : trackingDisabled.filter(item => item !== users);
    setTrackingDisabled(trackingDisabledArray);
  }, [trackingDisabled, setTrackingDisabled]);
  const onChangeTrackContentCreators = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_7__.useCallback)(event => {
    const {
      checked: exclude
    } = event.target;
    updateTrackingDisabled(TRACKING_CONTENT_CREATORS, exclude);
  }, [updateTrackingDisabled]);
  const onChangeTrackLoggedInUsers = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_7__.useCallback)(event => {
    const {
      checked: exclude
    } = event.target;
    updateTrackingDisabled(TRACKING_LOGGED_IN_USERS, exclude);
  }, [updateTrackingDisabled]);
  if (!Array.isArray(trackingDisabled)) {
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
    className: "googlesitekit-settings-module__fields-group",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_4__["default"], {
      as: "h4",
      size: "small",
      type: "title",
      className: "googlesitekit-settings-module__fields-group-title",
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Exclude Analytics', 'google-site-kit')
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
      className: "googlesitekit-settings-module__meta-item",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
        className: "googlesitekit-settings-module__inline-items",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
          className: "googlesitekit-settings-module__inline-item",
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.Switch, {
            label: trackingExclusionLabels[TRACKING_LOGGED_IN_USERS],
            checked: trackingDisabled.includes(TRACKING_LOGGED_IN_USERS),
            onClick: onChangeTrackLoggedInUsers,
            hideLabel: false
          })
        }), !trackingDisabled.includes(TRACKING_LOGGED_IN_USERS) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
          className: "googlesitekit-settings-module__inline-item",
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.Switch, {
            label: trackingExclusionLabels[TRACKING_CONTENT_CREATORS],
            checked: trackingDisabled.includes(TRACKING_CONTENT_CREATORS),
            onClick: onChangeTrackContentCreators,
            hideLabel: false
          })
        })]
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_5__["default"], {
        children: message
      })]
    })]
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/common/UseSnippetSwitch.js":
/*!**********************************************************************!*\
  !*** ./js/modules/analytics-4/components/common/UseSnippetSwitch.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ UseSnippetSwitch)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * GA4 Use Snippet Switch component.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */






function UseSnippetSwitch({
  description
}) {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_5__["default"])();
  const useSnippet = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getUseSnippet());
  const {
    setUseSnippet
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4);
  const onChange = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_7__.useCallback)(() => {
    const newUseSnippet = !useSnippet;
    setUseSnippet(newUseSnippet);
    (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.trackEvent)(`${viewContext}_analytics`, newUseSnippet ? 'enable_tag' : 'disable_tag', 'ga4');
  }, [useSnippet, setUseSnippet, viewContext]);
  if (useSnippet === undefined) {
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
    className: "googlesitekit-analytics-usesnippet",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.Switch, {
      label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Place Google Analytics code', 'google-site-kit'),
      checked: useSnippet,
      onClick: onChange,
      hideLabel: false
    }), description]
  });
}
UseSnippetSwitch.propTypes = {
  description: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().node)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/common/WebDataStreamHint.js":
/*!***********************************************************************!*\
  !*** ./js/modules/analytics-4/components/common/WebDataStreamHint.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ WebDataStreamHint)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_components_setup_StepHint__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/setup/StepHint */ "./js/components/setup/StepHint/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Analytics WebDataStreamHint component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */





function WebDataStreamHint() {
  const learnMoreLink = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_SITE).getDocumentationLinkURL('ga4-data-stream'));
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_setup_StepHint__WEBPACK_IMPORTED_MODULE_4__["default"], {
    leadingText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('What is a web data stream?', 'google-site-kit'),
    tooltipText: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('A data stream is a flow of data from your visitors to Analytics. When a data stream is created, Analytics generates a snippet of code that is added to your site to collect that data. <a>Learn more</a>', 'google-site-kit'), {
      a: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_3__["default"], {
        href: learnMoreLink,
        external: true,
        hideExternalIndicator: true
      })
    })
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/common/WebDataStreamNameInput.js":
/*!****************************************************************************!*\
  !*** ./js/modules/analytics-4/components/common/WebDataStreamNameInput.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ WebDataStreamNameInput)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useMount.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @wordpress/url */ "../node_modules/@wordpress/url/build-module/is-url.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_components_AccessibleWarningIcon__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/AccessibleWarningIcon */ "./js/components/AccessibleWarningIcon.js");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/validation */ "./js/modules/analytics-4/utils/validation.js");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Analytics WebDataStreamNameInput component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */









function WebDataStreamNameInput() {
  const propertyID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getPropertyID());
  const webDataStreamID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getWebDataStreamID());
  const webDataStreamName = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_9__["default"])(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.FORM_SETUP, 'webDataStreamName');
  const webDataStreamAlreadyExists = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => (0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_8__.isValidPropertyID)(propertyID) ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).doesWebDataStreamExist(propertyID, webDataStreamName) : false);
  const siteURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_SITE).getReferenceSiteURL());
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_FORMS);
  const onChange = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_11__.useCallback)(({
    currentTarget
  }) => {
    setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.FORM_SETUP, {
      webDataStreamName: currentTarget.value
    });
  }, [setValues]);

  // Set the default web data stream name.
  (0,react_use__WEBPACK_IMPORTED_MODULE_12__["default"])(() => {
    if (!webDataStreamName && (0,_wordpress_url__WEBPACK_IMPORTED_MODULE_13__.isURL)(siteURL)) {
      const {
        hostname
      } = new URL(siteURL);
      setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.FORM_SETUP, {
        webDataStreamName: hostname
      });
    }
  });

  // Return early if an existing web data stream is selected.
  if (webDataStreamID !== _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.WEBDATASTREAM_CREATE) {
    return null;
  }
  const error = webDataStreamAlreadyExists || !webDataStreamName || !(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_8__.isValidWebDataStreamName)(webDataStreamName);
  let helperText = false;
  if (webDataStreamAlreadyExists) {
    helperText = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('A web data stream with this name already exists.', 'google-site-kit');
  } else if (!webDataStreamName) {
    helperText = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('A web data stream name is required.', 'google-site-kit');
  } else if (!(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_8__.isValidWebDataStreamName)(webDataStreamName)) {
    helperText = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('This is not a valid web data stream name.', 'google-site-kit');
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)("div", {
    className: "googlesitekit-analytics-webdatastreamname",
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_7__.TextField, {
      className: classnames__WEBPACK_IMPORTED_MODULE_0___default()({
        'mdc-text-field--error': error
      }),
      label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Web data stream name', 'google-site-kit'),
      helperText: helperText,
      trailingIcon: error && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)("span", {
        className: "googlesitekit-text-field-icon--error",
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_components_AccessibleWarningIcon__WEBPACK_IMPORTED_MODULE_6__["default"], {})
      }),
      value: webDataStreamName,
      onChange: onChange,
      outlined: true
    })
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/common/WebDataStreamSelect.js":
/*!*************************************************************************!*\
  !*** ./js/modules/analytics-4/components/common/WebDataStreamSelect.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ WebDataStreamSelect)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/validation */ "./js/modules/analytics-4/utils/validation.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */







function WebDataStreamSelect(props) {
  const {
    hasModuleAccess,
    isDisabled,
    className,
    onChange
  } = props;
  const accountID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getAccountID());
  const {
    propertyID,
    webDataStreamID,
    measurementID
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getSettings() || {});
  const webDataStreams = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => (0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_5__.isValidPropertyID)(propertyID) && hasModuleAccess ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getWebDataStreams(propertyID) : []);
  const isLoading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => {
    if (isDisabled) {
      return false;
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).isLoadingWebDataStreams({
      hasModuleAccess
    });
  });
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_7__["default"])();
  const {
    setWebDataStreamID,
    updateSettingsForMeasurementID
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4);
  const onWebDataStreamChange = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_9__.useCallback)((index, {
    dataset
  }) => {
    const newID = dataset.value;
    if (webDataStreamID === newID) {
      return;
    }
    setWebDataStreamID(newID);
    updateSettingsForMeasurementID(webDataStreams.find(({
      _id
    }) => _id === newID)?.webStreamData?.measurementId || '' // eslint-disable-line sitekit/acronym-case
    );
    (0,_js_util__WEBPACK_IMPORTED_MODULE_6__.trackEvent)(`${viewContext}_analytics`, newID === _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.WEBDATASTREAM_CREATE ? 'change_webdatastream_new' : 'change_webdatastream', 'ga4');
    if (onChange) {
      onChange();
    }
  }, [webDataStreams, webDataStreamID, setWebDataStreamID, updateSettingsForMeasurementID, viewContext, onChange]);
  if (!(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_5__.isValidAccountID)(accountID)) {
    return null;
  } else if (isLoading) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.ProgressBar, {
      mobileVerticalSpacing: 76,
      desktopVerticalSpacing: 84,
      small: true
    });
  }
  const isValidSelection = webDataStreamID === undefined || webDataStreamID === '' ? true : (0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_5__.isValidWebDataStreamSelection)(webDataStreamID);
  if (hasModuleAccess === false) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.Select, {
      className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-analytics-4__select-webdatastream', className),
      label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Web data stream', 'google-site-kit'),
      value: measurementID,
      enhanced: true,
      outlined: true,
      disabled: true,
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.Option, {
        value: measurementID,
        children: measurementID
      })
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.Select, {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-analytics-4__select-webdatastream', className, {
      'mdc-select--invalid': !isValidSelection
    }),
    label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Web data stream', 'google-site-kit'),
    value: webDataStreamID,
    onEnhancedChange: onWebDataStreamChange,
    disabled: isDisabled || !(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_5__.isValidPropertySelection)(propertyID),
    enhanced: true,
    outlined: true,
    children: (webDataStreams || []).concat({
      _id: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.WEBDATASTREAM_CREATE,
      displayName: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Set up a new web data stream', 'google-site-kit')
    }).map(({
      _id,
      displayName,
      webStreamData = {}
    }, index) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.Option, {
      value: _id,
      children: _id === _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.WEBDATASTREAM_CREATE || !webStreamData?.measurementId // eslint-disable-line sitekit/acronym-case
      ? displayName : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.sprintf)(/* translators: 1: Data stream name. 2: Measurement ID. */
      (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__._x)('%1$s (%2$s)', 'Analytics data stream name and measurement ID', 'google-site-kit'), displayName, webStreamData.measurementId // eslint-disable-line sitekit/acronym-case
      )
    }, index))
  });
}
WebDataStreamSelect.propTypes = {
  hasModuleAccess: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().bool),
  isDisabled: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().bool),
  className: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().string)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/common/ZeroDataMessage.js":
/*!*********************************************************************!*\
  !*** ./js/modules/analytics-4/components/common/ZeroDataMessage.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ ZeroDataMessage)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Analytics ZeroDataMessage component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



function ZeroDataMessage({
  skipPrefix
}) {
  const url = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_SITE).getCurrentEntityURL());
  if (skipPrefix) {
    return url ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", {
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Your page hasn’t received any visitors yet', 'google-site-kit')
    }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", {
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Your site hasn’t received any visitors yet', 'google-site-kit')
    });
  }
  return url ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", {
    children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No data to display: your page hasn’t received any visitors yet', 'google-site-kit')
  }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)("span", {
    children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No data to display: your site hasn’t received any visitors yet', 'google-site-kit')
  });
}
ZeroDataMessage.propTypes = {
  skipPrefix: (prop_types__WEBPACK_IMPORTED_MODULE_4___default().bool)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/common/index.js":
/*!***********************************************************!*\
  !*** ./js/modules/analytics-4/components/common/index.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   AccountCreate: () => (/* reexport safe */ _AccountCreate__WEBPACK_IMPORTED_MODULE_0__["default"]),
/* harmony export */   AccountCreateLegacy: () => (/* reexport safe */ _AccountCreateLegacy__WEBPACK_IMPORTED_MODULE_1__["default"]),
/* harmony export */   AccountSelect: () => (/* reexport safe */ _AccountSelect__WEBPACK_IMPORTED_MODULE_2__["default"]),
/* harmony export */   CreatePropertyInfoNotice: () => (/* reexport safe */ _CreatePropertyInfoNotice__WEBPACK_IMPORTED_MODULE_3__["default"]),
/* harmony export */   EnhancedMeasurementSwitch: () => (/* reexport safe */ _EnhancedMeasurementSwitch__WEBPACK_IMPORTED_MODULE_4__["default"]),
/* harmony export */   PropertyHint: () => (/* reexport safe */ _PropertyHint__WEBPACK_IMPORTED_MODULE_5__["default"]),
/* harmony export */   PropertySelect: () => (/* reexport safe */ _PropertySelect__WEBPACK_IMPORTED_MODULE_6__["default"]),
/* harmony export */   TrackingExclusionSwitches: () => (/* reexport safe */ _TrackingExclusionSwitches__WEBPACK_IMPORTED_MODULE_7__["default"]),
/* harmony export */   UseSnippetSwitch: () => (/* reexport safe */ _UseSnippetSwitch__WEBPACK_IMPORTED_MODULE_11__["default"]),
/* harmony export */   WebDataStreamHint: () => (/* reexport safe */ _WebDataStreamHint__WEBPACK_IMPORTED_MODULE_8__["default"]),
/* harmony export */   WebDataStreamNameInput: () => (/* reexport safe */ _WebDataStreamNameInput__WEBPACK_IMPORTED_MODULE_9__["default"]),
/* harmony export */   WebDataStreamSelect: () => (/* reexport safe */ _WebDataStreamSelect__WEBPACK_IMPORTED_MODULE_10__["default"]),
/* harmony export */   ZeroDataMessage: () => (/* reexport safe */ _ZeroDataMessage__WEBPACK_IMPORTED_MODULE_12__["default"])
/* harmony export */ });
/* harmony import */ var _AccountCreate__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AccountCreate */ "./js/modules/analytics-4/components/common/AccountCreate/index.js");
/* harmony import */ var _AccountCreateLegacy__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AccountCreateLegacy */ "./js/modules/analytics-4/components/common/AccountCreateLegacy.js");
/* harmony import */ var _AccountSelect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AccountSelect */ "./js/modules/analytics-4/components/common/AccountSelect.js");
/* harmony import */ var _CreatePropertyInfoNotice__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./CreatePropertyInfoNotice */ "./js/modules/analytics-4/components/common/CreatePropertyInfoNotice.js");
/* harmony import */ var _EnhancedMeasurementSwitch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./EnhancedMeasurementSwitch */ "./js/modules/analytics-4/components/common/EnhancedMeasurementSwitch.js");
/* harmony import */ var _PropertyHint__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./PropertyHint */ "./js/modules/analytics-4/components/common/PropertyHint.js");
/* harmony import */ var _PropertySelect__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./PropertySelect */ "./js/modules/analytics-4/components/common/PropertySelect.js");
/* harmony import */ var _TrackingExclusionSwitches__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./TrackingExclusionSwitches */ "./js/modules/analytics-4/components/common/TrackingExclusionSwitches.js");
/* harmony import */ var _WebDataStreamHint__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./WebDataStreamHint */ "./js/modules/analytics-4/components/common/WebDataStreamHint.js");
/* harmony import */ var _WebDataStreamNameInput__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./WebDataStreamNameInput */ "./js/modules/analytics-4/components/common/WebDataStreamNameInput.js");
/* harmony import */ var _WebDataStreamSelect__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./WebDataStreamSelect */ "./js/modules/analytics-4/components/common/WebDataStreamSelect.js");
/* harmony import */ var _UseSnippetSwitch__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./UseSnippetSwitch */ "./js/modules/analytics-4/components/common/UseSnippetSwitch.js");
/* harmony import */ var _ZeroDataMessage__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ZeroDataMessage */ "./js/modules/analytics-4/components/common/ZeroDataMessage.js");
/**
 * GA4 common components.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */















/***/ }),

/***/ "./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/DataSourceLink.js":
/*!****************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/DataSourceLink.js ***!
  \****************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ DataSourceLink)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @wordpress/url */ "../node_modules/@wordpress/url/build-module/is-url.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/* harmony import */ var _js_components_SourceLink__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/components/SourceLink */ "./js/components/SourceLink.tsx");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * DashboardAllTrafficWidgetGA4 Data Source Link component
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */









function DataSourceLink() {
  const viewOnly = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_7__["default"])();
  const serviceReportURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    if (viewOnly) {
      return null;
    }
    const dimensionName = select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_UI).getValue(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.UI_DIMENSION_NAME) || 'sessionDefaultChannelGrouping';
    const entityURL = select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_SITE).getCurrentEntityURL();
    const {
      startDate,
      endDate,
      compareStartDate,
      compareEndDate
    } = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER).getDateRangeDates({
      compare: true,
      offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.DATE_RANGE_OFFSET
    });
    const reportArgs = {
      dates: {
        startDate,
        endDate,
        compareStartDate,
        compareEndDate
      }
    };
    let reportType;
    switch (dimensionName) {
      case 'country':
        reportType = 'user-demographics-detail';
        reportArgs.details = {
          metric: 'activeUsers',
          dimension: 'country'
        };
        // eslint-disable-next-line sitekit/acronym-case
        reportArgs.otherArgs = {
          collectionId: 'user'
        };
        break;
      case 'deviceCategory':
        reportType = 'user-technology-detail';
        reportArgs.details = {
          metric: 'activeUsers',
          dimension: 'deviceCategory'
        };
        // eslint-disable-next-line sitekit/acronym-case
        reportArgs.otherArgs = {
          collectionId: 'user'
        };
        break;
      case 'sessionDefaultChannelGrouping':
      default:
        reportType = 'lifecycle-traffic-acquisition-v2';
        // eslint-disable-next-line sitekit/acronym-case
        reportArgs.otherArgs = {
          collectionId: 'life-cycle'
        };
        break;
    }
    if ((0,_wordpress_url__WEBPACK_IMPORTED_MODULE_10__.isURL)(entityURL)) {
      reportArgs.filters = {
        unifiedPagePathScreen: (0,_js_util__WEBPACK_IMPORTED_MODULE_6__.getURLPath)(entityURL)
      };
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getServiceReportURL(reportType, reportArgs);
  });
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_components_SourceLink__WEBPACK_IMPORTED_MODULE_8__["default"], {
    className: "googlesitekit-data-block__source",
    name: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__._x)('Analytics', 'Service name', 'google-site-kit'),
    href: serviceReportURL,
    external: true
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/DimensionTabs.js":
/*!***************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/DimensionTabs.js ***!
  \***************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ DimensionTabs)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/PreviewBlock */ "./js/components/PreviewBlock.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * DimensionTabs component
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */








const tabs = [{
  tabText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Channels', 'google-site-kit'),
  dimensionName: 'sessionDefaultChannelGrouping'
}, {
  tabText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Locations', 'google-site-kit'),
  dimensionName: 'country'
}, {
  tabText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Devices', 'google-site-kit'),
  dimensionName: 'deviceCategory'
}];
function DimensionTabs({
  dimensionName,
  gatheringData,
  loaded,
  isZeroData
}) {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_7__["default"])();
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_UI);
  const activeTab = tabs.findIndex(tab => tab.dimensionName === dimensionName);
  const handleTabUpdate = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_9__.useCallback)(index => {
    const {
      dimensionName: name
    } = tabs[index] || {};
    setValues({
      [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.UI_DIMENSION_NAME]: name,
      [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.UI_DIMENSION_VALUE]: '',
      [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.UI_DIMENSION_COLOR]: '',
      [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.UI_ACTIVE_ROW_INDEX]: null
    });
    (0,_js_util__WEBPACK_IMPORTED_MODULE_6__.trackEvent)(`${viewContext}_all-traffic-widget`, 'tab_select', name);
  }, [setValues, viewContext]);
  if (!loaded) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)("div", {
      className: "googlesitekit-widget--analyticsAllTraffic__tabs--loading",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_5__["default"], {
        width: "100px",
        height: "40px",
        shape: "square"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_5__["default"], {
        width: "100px",
        height: "40px",
        shape: "square"
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_5__["default"], {
        width: "100px",
        height: "40px",
        shape: "square"
      })]
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_9__.Fragment, {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("div", {
      className: "googlesitekit-widget--analyticsAllTraffic__tabs hidden-on-mobile",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.TabBar, {
        activeIndex: activeTab,
        handleActiveIndexUpdate: handleTabUpdate,
        children: tabs.map(tab => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.Tab, {
          className: "mdc-tab--min-width",
          focusOnActivate: false,
          disabled: gatheringData || isZeroData,
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("span", {
            className: "mdc-tab__text-label",
            children: tab.tabText
          })
        }, tab.dimensionName))
      })
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("div", {
      className: "googlesitekit-widget--analyticsAllTraffic__tabs--small",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.Select, {
        onEnhancedChange: handleTabUpdate,
        value: `dimension-name-${activeTab}`,
        disabled: gatheringData || isZeroData,
        enhanced: true,
        outlined: true,
        children: tabs.map((tab, index) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.Option, {
          value: `dimension-name-${index}`,
          children: tab.tabText
        }, tab.dimensionName))
      })
    })]
  });
}
DimensionTabs.propTypes = {
  dimensionName: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().string).isRequired,
  gatheringData: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().bool),
  isZeroData: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().bool),
  loaded: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().bool)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/TotalUserCount.js":
/*!****************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/TotalUserCount.js ***!
  \****************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ TotalUserCount)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_17__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @wordpress/icons */ "../node_modules/@wordpress/icons/build-module/icon/index.js");
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @wordpress/icons */ "../node_modules/@wordpress/icons/build-module/library/chevron-right.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_components_ChangeArrow__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/ChangeArrow */ "./js/components/ChangeArrow.js");
/* harmony import */ var _js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/PreviewBlock */ "./js/components/PreviewBlock.js");
/* harmony import */ var _js_components_ReportError__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/components/ReportError */ "./js/components/ReportError.js");
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_components_GatheringDataNotice__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/components/GatheringDataNotice */ "./js/components/GatheringDataNotice.js");
/* harmony import */ var _js_components_Typography__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/js/components/Typography */ "./js/components/Typography/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * TotalUserCount component
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */












function TotalUserCount(props) {
  const {
    loaded,
    error,
    report,
    dimensionValue,
    gatheringData
  } = props;
  const dateRange = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).getDateRange());
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_8__.CORE_UI);
  function showAllUsers() {
    setValues({
      [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_9__.UI_DIMENSION_VALUE]: '',
      [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_9__.UI_DIMENSION_COLOR]: ''
    });
  }
  if (!loaded) {
    return (
      /*#__PURE__*/
      // Height is based on real count desktop height (100px), minus 10px for the extra margin.
      // For extra large desktop viewports, it is increased via CSS to 106px, to match the respective
      // real count height for those devices (116px).
      // TODO: Modify `PreviewBlock` to allow for different sizes per breakpoint.
      (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_6__["default"], {
        className: "googlesitekit-widget--analyticsAllTraffic__totalcount--loading",
        width: "220px",
        height: "90px",
        shape: "square"
      })
    );
  }
  if (error) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_js_components_ReportError__WEBPACK_IMPORTED_MODULE_7__["default"], {
      moduleSlug: "analytics-4",
      error: error
    });
  }
  const {
    totals
  } = report || {};
  const [current, previous] = totals || [];
  const change = (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.calculateChange)(previous?.metricValues?.[0]?.value, current?.metricValues?.[0]?.value);
  let currentDateRangeLabel = null;
  const currentDateRangeDays = (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.getAvailableDateRanges)()[dateRange]?.days;
  if (currentDateRangeDays) {
    currentDateRangeLabel = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.sprintf)(/* translators: %s: number of days */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('compared to the previous %s days', 'google-site-kit'), currentDateRangeDays);
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)("div", {
    className: "googlesitekit-widget--analyticsAllTraffic__totalcount googlesitekit-data-block",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_12__["default"], {
      as: "h3",
      className: "googlesitekit-subheading-1 googlesitekit-data-block__title",
      children: [!dimensionValue && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)("span", {
        children: [(0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('All Visitors', 'google-site-kit'), " "]
      }), dimensionValue && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_14__.Fragment, {
        children: [dimensionValue && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_10__["default"], {
          onClick: showAllUsers,
          children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('All Visitors', 'google-site-kit')
        }), !dimensionValue && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("span", {
          children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('All Visitors', 'google-site-kit')
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_wordpress_icons__WEBPACK_IMPORTED_MODULE_15__["default"], {
          icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_16__["default"],
          size: "18",
          fill: "currentColor"
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("span", {
          children: dimensionValue
        })]
      })]
    }), gatheringData && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_js_components_GatheringDataNotice__WEBPACK_IMPORTED_MODULE_11__["default"], {
      style: _js_components_GatheringDataNotice__WEBPACK_IMPORTED_MODULE_11__.NOTICE_STYLE.LARGE
    }), !gatheringData && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_14__.Fragment, {
      children: [!!current?.metricValues?.[0]?.value && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("div", {
        className: "googlesitekit-data-block__datapoint",
        children: (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.numFmt)(current?.metricValues?.[0]?.value)
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsxs)("div", {
        className: "googlesitekit-data-block__change",
        children: [!!change && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("span", {
          className: "googlesitekit-data-block__arrow",
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_js_components_ChangeArrow__WEBPACK_IMPORTED_MODULE_5__["default"], {
            direction: 0 <= change ? 'up' : 'down',
            width: 9,
            height: 9
          })
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("span", {
          className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-data-block__value', {
            'googlesitekit-data-block__value--up': 0 < change,
            'googlesitekit-data-block__value--down': 0 > change
          }),
          children: (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.numFmt)(Math.abs(change), {
            style: 'percent',
            maximumFractionDigits: 1
          })
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("span", {
          className: "googlesitekit-data-block__suffix",
          children: currentDateRangeLabel
        })]
      })]
    })]
  });
}
TotalUserCount.propTypes = {
  loaded: (prop_types__WEBPACK_IMPORTED_MODULE_17___default().bool),
  report: (prop_types__WEBPACK_IMPORTED_MODULE_17___default().object),
  dimensionValue: (prop_types__WEBPACK_IMPORTED_MODULE_17___default().string),
  gatheringData: (prop_types__WEBPACK_IMPORTED_MODULE_17___default().bool)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/UserCountGraph.js":
/*!****************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/UserCountGraph.js ***!
  \****************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ UserCountGraph)
/* harmony export */ });
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_13__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_components_GoogleChart__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/GoogleChart */ "./js/components/GoogleChart/index.js");
/* harmony import */ var _js_modules_analytics_4_utils_parseDimensionStringToDate__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/parseDimensionStringToDate */ "./js/modules/analytics-4/utils/parseDimensionStringToDate.js");
/* harmony import */ var _js_components_ReportError__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/components/ReportError */ "./js/components/ReportError.js");
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils */ "./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/utils.js");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * UserCountGraph component
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */











function UserCountGraph(props) {
  const {
    loaded,
    error,
    report,
    gatheringData
  } = props;
  const isViewOnly = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_10__["default"])();
  const {
    startDate,
    endDate
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.DATE_RANGE_OFFSET
  }));
  const graphLineColor = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_UI).getValue(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.UI_DIMENSION_COLOR) || '#3c7251');
  const propertyCreateTime = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => {
    if (isViewOnly) {
      return null;
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getPropertyCreateTime();
  });
  if (error) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_js_components_ReportError__WEBPACK_IMPORTED_MODULE_8__["default"], {
      moduleSlug: "analytics-4",
      error: error
    });
  }
  let rows;
  if (Array.isArray(report?.rows)) {
    rows = report.rows;
  } else if (gatheringData) {
    rows = [];
  } else {
    // Get the first date after the start date so there's a tick at the start
    // of the date range.
    // See: https://github.com/google/site-kit-wp/pull/8053#pullrequestreview-1811682783
    const dateAfterStartDate = (0,_js_util__WEBPACK_IMPORTED_MODULE_11__.stringToDate)(startDate);
    dateAfterStartDate.setDate(dateAfterStartDate.getDate() + 1);
    const dateAfterStartDateString = (0,_js_util__WEBPACK_IMPORTED_MODULE_11__.getDateString)(dateAfterStartDate);

    // For the "zero data" case, we need to create a zero data row for the start
    // and end dates to ensure the chart renders the ticks at the correct
    // offsets.
    //
    // We also need to create an additional row for
    rows = [(0,_utils__WEBPACK_IMPORTED_MODULE_9__.createZeroDataRow)(startDate), (0,_utils__WEBPACK_IMPORTED_MODULE_9__.createZeroDataRow)(dateAfterStartDateString), (0,_utils__WEBPACK_IMPORTED_MODULE_9__.createZeroDataRow)(endDate)];
  }
  const chartData = [[{
    type: 'date',
    label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Day', 'google-site-kit')
  }, {
    type: 'number',
    label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Users', 'google-site-kit')
  }], ...rows.map(({
    metricValues,
    dimensionValues
  }) => [(0,_js_modules_analytics_4_utils_parseDimensionStringToDate__WEBPACK_IMPORTED_MODULE_7__["default"])(dimensionValues[0].value), metricValues[0].value])];
  const [, ...ticks] = chartData.slice(1).map(([date]) => date);
  const chartOptions = (0,lodash__WEBPACK_IMPORTED_MODULE_0__.cloneDeep)(UserCountGraph.chartOptions);
  chartOptions.series[0].color = graphLineColor;
  chartOptions.hAxis.ticks = ticks;

  // Set the `max` height of the chart to `undefined` so that the chart will
  // show all content, but only if the report is loaded/has data.
  if (!report?.totals?.[0]?.metricValues?.[0]?.value ||
  // The total returned by the API can be a string, so make sure we cast it
  // to a number.
  parseInt(report?.totals?.[0]?.metricValues?.[0]?.value, 10) === 0) {
    chartOptions.vAxis.viewWindow.max = 100;
  } else {
    chartOptions.vAxis.viewWindow.max = undefined;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)("div", {
    className: "googlesitekit-widget--analyticsAllTraffic__user-count-chart",
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_js_components_GoogleChart__WEBPACK_IMPORTED_MODULE_6__["default"], {
      chartType: "LineChart",
      data: chartData,
      dateMarkers: propertyCreateTime ? [{
        date: (0,_js_util__WEBPACK_IMPORTED_MODULE_11__.getDateString)(
        // Valid use of `new Date()` with an argument.
        // eslint-disable-next-line sitekit/no-direct-date
        new Date(propertyCreateTime)),
        text: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Google Analytics property created', 'google-site-kit')
      }] : undefined,
      height: "368px",
      loadingHeight: "340px",
      loaded: loaded,
      options: chartOptions,
      gatheringData: gatheringData,
      width: "100%"
    })
  });
}
UserCountGraph.propTypes = {
  loaded: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().bool),
  error: prop_types__WEBPACK_IMPORTED_MODULE_13___default().shape({}),
  report: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().object),
  gatheringData: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().bool)
};
UserCountGraph.chartOptions = {
  animation: {
    startup: true
  },
  curveType: 'function',
  height: 340,
  width: '100%',
  colors: ['#3c7251'],
  chartArea: {
    left: 7,
    right: 40,
    height: 300,
    top: 21
  },
  legend: {
    position: 'none'
  },
  hAxis: {
    // This color is the result of placing `rgba(26, 115, 232, 0.08)` over the white (`#ffffff`) background.
    backgroundColor: '#eef4fd',
    format: 'MMM d',
    gridlines: {
      color: '#ffffff'
    },
    textPosition: 'out',
    textStyle: {
      color: '#616161',
      fontSize: 12
    }
  },
  vAxis: {
    gridlines: {
      color: '#ece9f1'
    },
    lineWidth: 3,
    minorGridlines: {
      color: '#ffffff'
    },
    minValue: 0,
    textStyle: {
      color: '#616161',
      fontSize: 12
    },
    textPosition: 'out',
    viewWindow: {
      min: 0
    }
  },
  series: {
    0: {
      lineWidth: 3,
      targetAxisIndex: 1
    }
  },
  focusTarget: 'category',
  crosshair: {
    color: '#3c7251',
    opacity: 0.1,
    orientation: 'vertical',
    trigger: 'both'
  }
};

/***/ }),

/***/ "./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/UserDimensionsPieChart.js":
/*!************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/UserDimensionsPieChart.js ***!
  \************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ UserDimensionsPieChart)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_20__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _wordpress_keycodes__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @wordpress/keycodes */ "../node_modules/@wordpress/keycodes/build-module/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_modules_analytics_4_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/utils */ "./js/modules/analytics-4/utils/index.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_components_GoogleChart__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/components/GoogleChart */ "./js/components/GoogleChart/index.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/components/PreviewBlock */ "./js/components/PreviewBlock.js");
/* harmony import */ var _svg_icons_pie_chart_zero_data_svg__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/svg/icons/pie-chart-zero-data.svg */ "./svg/icons/pie-chart-zero-data.svg");
/* harmony import */ var _js_components_GatheringDataNotice__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/js/components/GatheringDataNotice */ "./js/components/GatheringDataNotice.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _hooks_usePieChartSlices__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./hooks/usePieChartSlices */ "./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/hooks/usePieChartSlices.js");
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./utils */ "./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/utils.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * UserDimensionsPieChart component
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */




/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */















function UserDimensionsPieChart(props) {
  const {
    dimensionName,
    dimensionValue,
    gatheringData,
    loaded,
    report
  } = props;
  const [selectable, setSelectable] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useState)(false);
  const [isTooltipOpen, setIsTooltipOpen] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useState)(false);
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_14__["default"])();
  const otherSupportURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_SITE).getGoogleSupportURL({
    path: '/analytics/answer/13331684'
  }));
  const notSetSupportURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_SITE).getGoogleSupportURL({
    path: '/analytics/answer/13504892'
  }));
  const dimensionColor = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_UI).getValue(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.UI_DIMENSION_COLOR));
  const activeRowIndex = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_UI).getValue(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.UI_ACTIVE_ROW_INDEX));
  const hasZeroData = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.MODULES_ANALYTICS_4).hasZeroData());
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useDispatch)(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_UI);
  const chartWrapperRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useRef)();
  const containerRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useRef)();
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useEffect)(() => {
    function onTooltipClick(event) {
      const {
        target
      } = event || {};
      if (!target?.classList?.contains('googlesitekit-cta-link__tooltip')) {
        return;
      }
      const label = target.dataset.rowLabel;
      if (label === '(other)' || label === '(not set)') {
        (0,_js_util__WEBPACK_IMPORTED_MODULE_8__.trackEvent)(`${viewContext}_all-traffic-widget`, 'help_click', label);
      }
    }
    const currentContainerRef = containerRef.current;

    // When the user hits the 'escape' key and the tooltip is open, close the tooltip and reset UI vars.
    function onEscape(event = {}) {
      if (event?.keyCode === _wordpress_keycodes__WEBPACK_IMPORTED_MODULE_19__.ESCAPE && isTooltipOpen) {
        setIsTooltipOpen(false);
        setValues({
          [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.UI_DIMENSION_VALUE]: '',
          [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.UI_DIMENSION_COLOR]: '',
          [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.UI_ACTIVE_ROW_INDEX]: null
        });
      }
    }

    // When the use clicks on anything except the legend while the tooltip is open, close the tooltip.
    function onExitClick(event) {
      if (isTooltipOpen && !event?.target?.closest('.googlesitekit-widget--analyticsAllTraffic__dimensions-chart')) {
        setIsTooltipOpen(false);
      }
    }
    if (currentContainerRef) {
      currentContainerRef.addEventListener('click', onTooltipClick);
      __webpack_require__.g.addEventListener('click', onExitClick);
      __webpack_require__.g.addEventListener('keyup', onEscape);
    }
    return () => {
      if (currentContainerRef) {
        currentContainerRef.removeEventListener('click', onTooltipClick);
        __webpack_require__.g.removeEventListener('click', onExitClick);
        __webpack_require__.g.removeEventListener('keyup', onEscape);
      }
    };
  }, [setValues, activeRowIndex, dimensionValue, dimensionColor, viewContext, isTooltipOpen]);
  const dataMap = (0,_js_modules_analytics_4_utils__WEBPACK_IMPORTED_MODULE_6__.extractAnalyticsDataForPieChart)(report, {
    keyColumnIndex: 0,
    maxSlices: 5,
    withOthers: true,
    tooltipCallback: (row, previousDateRangeRow, rowData) => {
      const absValue = row?.metricValues?.[0]?.value || 0;
      const difference = previousDateRangeRow?.metricValues?.[0]?.value > 0 ? absValue * 100 / previousDateRangeRow.metricValues[0].value - 100 : 100;
      const formattedValue = (0,_js_util__WEBPACK_IMPORTED_MODULE_8__.numberFormat)(absValue);
      let statInfo;
      if (previousDateRangeRow) {
        const svgArrow = (0,_js_util__WEBPACK_IMPORTED_MODULE_8__.getChartDifferenceArrow)(difference);
        statInfo = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.sprintf)(/* translators: 1: numeric value of users, 2: up or down arrow , 3: different change in percentage, %%: percent symbol */
        (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__._x)('Users: <strong>%1$s</strong> <em>%2$s %3$s%%</em>', 'Stat information shown in the user dimensions chart tooltip when comparison data is available', 'google-site-kit'), formattedValue, svgArrow, (0,_js_util__WEBPACK_IMPORTED_MODULE_8__.numberFormat)(Math.abs(difference), {
          maximumFractionDigits: 2
        }));
      } else {
        statInfo = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.sprintf)(/* translators: 1: numeric value of users */
        (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__._x)('Users: <strong>%1$s</strong>', 'Stat information shown in the user dimensions chart tooltip when no comparison data is available', 'google-site-kit'), formattedValue);
      }
      const rowLabel = rowData[0].toLowerCase();
      const dimensionClassName = `googlesitekit-visualization-tooltip-${rowLabel.replace(/\W+/, '_')}`;
      let tooltip = `<p>
					${/* translators: %s: dimension label */(0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.sprintf)((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('%s:', 'google-site-kit'), rowData[0].toUpperCase())}
					<b>${(0,_js_util__WEBPACK_IMPORTED_MODULE_8__.numberFormat)(rowData[1], {
        maximumFractionDigits: 1,
        style: 'percent'
      })}</b>
				</p>
				<p>
					${statInfo}
				</p>`;
      const othersLabel = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Others', 'google-site-kit').toLowerCase();
      if (rowLabel === othersLabel) {
        switch (dimensionName) {
          case 'country':
            tooltip += `<p>${(0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('See the full list of locations in Analytics', 'google-site-kit')}</p>`;
            break;
          case 'deviceCategory':
            tooltip += `<p>${(0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('See the full list of devices in Analytics', 'google-site-kit')}</p>`;
            break;
          case 'sessionDefaultChannelGrouping':
          default:
            tooltip += `<p>${(0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('See the full list of channels in Analytics', 'google-site-kit')}</p>`;
            break;
        }
      }
      if (otherSupportURL && rowLabel === '(other)') {
        tooltip += (0,_utils__WEBPACK_IMPORTED_MODULE_16__.getTooltipHelp)(otherSupportURL, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.sprintf)(/* translators: %s: pie slice label */
        (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Learn more about what "%s" means', 'google-site-kit'), rowLabel), rowLabel);
      }
      if (notSetSupportURL && rowLabel === '(not set)') {
        tooltip += (0,_utils__WEBPACK_IMPORTED_MODULE_16__.getTooltipHelp)(notSetSupportURL, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.sprintf)(/* translators: %s: pie slice label */
        (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Learn more about what "%s" means', 'google-site-kit'), rowLabel), rowLabel);
      }
      tooltip = `<div class="${classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-visualization-tooltip', dimensionClassName, {
        'googlesitekit-visualization-tooltip--up': difference > 0,
        'googlesitekit-visualization-tooltip--down': difference < 0
      })}">
					${tooltip}
				</div>`;
      return tooltip;
    }
  });
  const getPieChartSlices = (0,_hooks_usePieChartSlices__WEBPACK_IMPORTED_MODULE_15__["default"])();
  const options = (0,lodash__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(UserDimensionsPieChart.chartOptions);
  const slices = getPieChartSlices(dataMap.slice(1).map(([rowDimensionValue]) => rowDimensionValue));
  options.slices = slices;
  function onLegendClick(index) {
    if (!chartWrapperRef.current) {
      return;
    }
    const newDimensionValue = chartWrapperRef.current.getDataTable().getValue(index, 0);
    const isOthers = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Others', 'google-site-kit') === newDimensionValue;

    // Do not do anything as "Others" should not be selectable.
    if (isOthers) {
      return;
    }
    const {
      row
    } = chartWrapperRef.current.getChart().getSelection()?.[0] || {};
    if (row === index) {
      setIsTooltipOpen(false);
      setValues({
        [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.UI_DIMENSION_VALUE]: '',
        [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.UI_DIMENSION_COLOR]: '',
        [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.UI_ACTIVE_ROW_INDEX]: null
      });
    } else if (newDimensionValue) {
      setIsTooltipOpen(true);
      setValues({
        [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.UI_DIMENSION_COLOR]: slices[row]?.color,
        [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.UI_DIMENSION_VALUE]: newDimensionValue,
        [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.UI_ACTIVE_ROW_INDEX]: index
      });
      (0,_js_util__WEBPACK_IMPORTED_MODULE_8__.trackEvent)(`${viewContext}_all-traffic-widget`, 'slice_select', `${dimensionName}:${newDimensionValue}`);
    }
  }
  function onMouseOut() {
    setSelectable(false);
  }
  function onMouseOver(event, {
    chartWrapper
  }) {
    const {
      row
    } = event;
    if (row === undefined || row === null) {
      setSelectable(false);
    }
    const dataTable = chartWrapper.getDataTable();
    setSelectable(dataTable.getValue(row, 0) !== (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Others', 'google-site-kit'));
  }
  function onSelect({
    chartWrapper
  }) {
    const chart = chartWrapper.getChart();
    const {
      row
    } = chart.getSelection()?.[0] || {};
    if (row === null || row === undefined) {
      setIsTooltipOpen(false);
      setValues({
        [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.UI_DIMENSION_VALUE]: '',
        [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.UI_DIMENSION_COLOR]: '',
        [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.UI_ACTIVE_ROW_INDEX]: null
      });
    } else {
      const dataTable = chartWrapper.getDataTable();
      if (dataTable) {
        const newDimensionValue = dataTable.getValue(row, 0);
        const isOthers = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Others', 'google-site-kit') === newDimensionValue;
        if (isOthers) {
          // Maintain the existing selection when clicking on the "Others" slice.
          // We set a value here because otherwise Google Charts will show the
          // "Others" slice as selected.
          if (activeRowIndex === null || activeRowIndex === undefined) {
            chart.setSelection([]);
          } else {
            chart.setSelection([{
              row: activeRowIndex
            }]);
          }
        } else {
          setIsTooltipOpen(true);
          setValues({
            [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.UI_DIMENSION_COLOR]: slices[row]?.color,
            [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.UI_DIMENSION_VALUE]: newDimensionValue,
            [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.UI_ACTIVE_ROW_INDEX]: row
          });
          (0,_js_util__WEBPACK_IMPORTED_MODULE_8__.trackEvent)(`${viewContext}_all-traffic-widget`, 'slice_select', `${dimensionName}:${newDimensionValue}`);
        }
      }
    }
  }
  function onReady({
    chartWrapper
  }) {
    const chart = chartWrapper.getChart();

    // If there is a dimension value set but the initialized chart does not have a
    // selection yet, find the matching row index and initially select it in the chart.
    if (dimensionValue && !chart.getSelection()?.length) {
      // Look in the real data map, which includes headings, therefore subtract 1.
      const selectedRow = dataMap.findIndex(row => row[0] === dimensionValue) - 1;
      if (selectedRow >= 0) {
        // If the new data includes the original dimension value, re-select it and adjust the color as needed.
        chart.setSelection([{
          row: selectedRow
        }]);
        if (activeRowIndex !== selectedRow || (slices[selectedRow]?.color || dimensionColor) !== dimensionColor) {
          setValues({
            [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.UI_ACTIVE_ROW_INDEX]: selectedRow,
            [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.UI_DIMENSION_COLOR]: slices[selectedRow]?.color || dimensionColor
          });
        }
      } else {
        // If the new data does not include the original dimension value, unset it to match the empty selection.
        setValues({
          [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.UI_DIMENSION_VALUE]: '',
          [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.UI_DIMENSION_COLOR]: '',
          [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.UI_ACTIVE_ROW_INDEX]: null
        });
      }
    }

    // If there is no dimension value set but the initialized chart does have a selection,
    // ensure it is no longer selected in the chart.
    if (!dimensionValue && chart.getSelection()?.length) {
      chart.setSelection([]);
      if (activeRowIndex !== null) {
        setValues({
          [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.UI_ACTIVE_ROW_INDEX]: null
        });
      }
    }

    // If no dimensionValue is set, unset the color.
    if (!dimensionValue && dimensionColor !== '') {
      setValues({
        [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.UI_DIMENSION_COLOR]: ''
      });
    }
  }
  let labels = {
    sessionDefaultChannelGrouping: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('<span>By</span> channels', 'google-site-kit'),
    country: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('<span>By</span> locations', 'google-site-kit'),
    deviceCategory: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('<span>By</span> devices', 'google-site-kit')
  };
  if (gatheringData) {
    labels = {
      sessionDefaultChannelGrouping: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('gathering data…', 'google-site-kit')
    };
    options.pieSliceText = 'none';
    options.tooltip.trigger = 'none';
    options.sliceVisibilityThreshold = 1;
  }
  const sanitizeArgs = {
    ALLOWED_TAGS: ['span'],
    ALLOWED_ATTR: []
  };
  const title = loaded ? (0,_js_util__WEBPACK_IMPORTED_MODULE_8__.sanitizeHTML)(labels[dimensionName] || '', sanitizeArgs) : {
    __html: ''
  };
  const isSingleSliceReport = (0,_js_modules_analytics_4_utils__WEBPACK_IMPORTED_MODULE_6__.isSingleSlice)(report);
  if (isSingleSliceReport) {
    // When there is only one row, the chart will add a label which we need to hide - see issue #2660
    options.pieSliceText = 'none';
  }
  if (isTooltipOpen) {
    options.tooltip.trigger = 'selection';
  } else {
    options.tooltip.trigger = 'focus';
  }
  const showZeroDataChart = hasZeroData || dataMap.length < 2;
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("div", {
    className: "googlesitekit-widget--analyticsAllTraffic__dimensions-container",
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)("div", {
      ref: containerRef,
      className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-widget--analyticsAllTraffic__dimensions-chart', {
        'googlesitekit-widget--analyticsAllTraffic__slice-selected': !!dimensionValue,
        'googlesitekit-widget--analyticsAllTraffic__selectable': selectable
      }),
      children: [showZeroDataChart && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)("div", {
        className: "googlesitekit-widget--analyticsAllTraffic__chart-zero-data",
        children: [gatheringData && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_components_GatheringDataNotice__WEBPACK_IMPORTED_MODULE_13__["default"], {
          style: _js_components_GatheringDataNotice__WEBPACK_IMPORTED_MODULE_13__.NOTICE_STYLE.SMALL_OVERLAY
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_svg_icons_pie_chart_zero_data_svg__WEBPACK_IMPORTED_MODULE_12__["default"], {})]
      }), !showZeroDataChart &&
      /*#__PURE__*/
      /* eslint-disable-next-line jsx-a11y/mouse-events-have-key-events */
      (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_components_GoogleChart__WEBPACK_IMPORTED_MODULE_9__["default"], {
        chartType: "PieChart",
        data: dataMap || [],
        getChartWrapper: chartWrapper => {
          chartWrapperRef.current = chartWrapper;
        },
        gatheringData: gatheringData,
        height: "368px",
        loaded: loaded,
        loadingHeight: "300px",
        loadingWidth: "300px",
        onMouseOut: onMouseOut,
        onMouseOver: onMouseOver,
        onReady: onReady,
        onSelect: onSelect,
        options: options,
        width: "100%",
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("div", {
          className: classnames__WEBPACK_IMPORTED_MODULE_0___default()({
            'googlesitekit-widget--analyticsAllTraffic__dimensions-chart-gathering-data': gatheringData,
            'googlesitekit-widget--analyticsAllTraffic__dimensions-chart-title': !gatheringData
          }),
          dangerouslySetInnerHTML: title
        })
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)("div", {
        "aria-label": gatheringData ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('A pie chart for Analytics that is gathering data, so has no data to display.', 'google-site-kit') : undefined,
        className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-widget--analyticsAllTraffic__legend', {
          'googlesitekit-widget--analyticsAllTraffic__legend--single': isSingleSliceReport
        }),
        role: "region",
        children: [loaded && !showZeroDataChart && dataMap?.slice(1).map(([label], i) => {
          const isActive = label === dimensionValue;
          const sliceColor = slices[i]?.color;
          const isOthers = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Others', 'google-site-kit') === label;
          return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)(_js_components_Link__WEBPACK_IMPORTED_MODULE_10__["default"], {
            onClick: () => onLegendClick(i),
            className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-widget--analyticsAllTraffic__legend-slice', {
              'googlesitekit-widget--analyticsAllTraffic__legend-active': isActive,
              'googlesitekit-widget--analyticsAllTraffic__legend-others': isOthers
            }),
            disabled: gatheringData,
            children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("span", {
              className: "googlesitekit-widget--analyticsAllTraffic__dot",
              style: {
                backgroundColor: sliceColor
              }
            }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("span", {
              className: "googlesitekit-widget--analyticsAllTraffic__label",
              "data-label": label,
              children: label
            }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("span", {
              className: "googlesitekit-widget--analyticsAllTraffic__underlay",
              style: {
                backgroundColor: sliceColor
              }
            })]
          }, label);
        }), !loaded && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.Fragment, {
          children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)("div", {
            className: "googlesitekit-widget--analyticsAllTraffic__legend-slice",
            children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("span", {
              className: "googlesitekit-widget--analyticsAllTraffic__dot",
              style: {
                backgroundColor: '#ccc'
              }
            }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_11__["default"], {
              height: "18px",
              width: "68px",
              shape: "square"
            })]
          }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)("div", {
            className: "googlesitekit-widget--analyticsAllTraffic__legend-slice",
            children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("span", {
              className: "googlesitekit-widget--analyticsAllTraffic__dot",
              style: {
                backgroundColor: '#ccc'
              }
            }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_11__["default"], {
              height: "18px",
              width: "52px",
              shape: "square"
            })]
          }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)("div", {
            className: "googlesitekit-widget--analyticsAllTraffic__legend-slice",
            children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("span", {
              className: "googlesitekit-widget--analyticsAllTraffic__dot",
              style: {
                backgroundColor: '#ccc'
              }
            }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_11__["default"], {
              height: "18px",
              width: "40px",
              shape: "square"
            })]
          }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)("div", {
            className: "googlesitekit-widget--analyticsAllTraffic__legend-slice",
            children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)("span", {
              className: "googlesitekit-widget--analyticsAllTraffic__dot",
              style: {
                backgroundColor: '#ccc'
              }
            }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_11__["default"], {
              height: "18px",
              width: "52px",
              shape: "square"
            })]
          })]
        })]
      })]
    })
  });
}
UserDimensionsPieChart.defaultProps = {
  dimensionName: 'sessionDefaultChannelGrouping'
};
UserDimensionsPieChart.chartOptions = {
  chartArea: {
    left: 'auto',
    height: 300,
    top: 'auto',
    width: '100%'
  },
  backgroundColor: 'transparent',
  fontSize: 12,
  height: 368,
  legend: {
    position: 'none'
  },
  pieHole: 0.6,
  pieSliceTextStyle: {
    color: '#131418',
    fontSize: 12
  },
  title: null,
  tooltip: {
    isHtml: true,
    // eslint-disable-line sitekit/acronym-case
    trigger: 'focus'
  },
  width: '100%'
};
UserDimensionsPieChart.propTypes = {
  dimensionName: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().string).isRequired,
  dimensionValue: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().string),
  gatheringData: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().bool),
  report: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().object),
  loaded: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().bool)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/hooks/usePieChartSlices.js":
/*!*************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/hooks/usePieChartSlices.js ***!
  \*************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ usePieChartSlices)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/**
 * `usePieChartSlices()` custom hook for the `UserDimensionsPieChart` component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */

const PIE_CHART_COLORS = ['#fece72', '#a983e6', '#bed4ff', '#ee92da', '#ff9b7a'];

// This is the fallback color for dimension values that are not in the `PIE_CHART_COLORS` array.
// In practice, we should never reach this fallback color.
const FALLBACK_COLOR = '#ccc';

/**
 * Gets the pie chart slices for the given dimension values.
 *
 * This hook caches the colors for the dimension values and returns them when the
 * same dimension values are passed in again.
 *
 * @since 1.167.0
 *
 * @return {Function} A function that returns the pie chart slices for the given dimension values.
 */
function usePieChartSlices() {
  const dimensionValueColorsRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useRef)({});
  function getDimensionValueColor(dimensionValue) {
    const colors = dimensionValueColorsRef.current;
    if (colors[dimensionValue]) {
      return colors[dimensionValue];
    }
    const usedColors = Object.values(colors);
    const availableColor = PIE_CHART_COLORS.find(color => !usedColors.includes(color)) || FALLBACK_COLOR;
    colors[dimensionValue] = availableColor;
    return availableColor;
  }
  function getPieChartSlices(dimensionValues) {
    if (dimensionValues.length === 0) {
      return {};
    }

    // Remove cached colors for dimension values that are not in the new dimension values array,
    // to avoid running out of colors.
    Object.keys(dimensionValueColorsRef.current).forEach(dimensionValue => {
      if (!dimensionValues.includes(dimensionValue)) {
        delete dimensionValueColorsRef.current[dimensionValue];
      }
    });

    // Get slices for new dimension values.
    return dimensionValues.reduce((slices, dimensionValue, index) => {
      slices[index] = {
        color: getDimensionValueColor(dimensionValue)
      };
      return slices;
    }, {});
  }
  return getPieChartSlices;
}

/***/ }),

/***/ "./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/index.js":
/*!*******************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/index.js ***!
  \*******************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_modules_analytics_4_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/utils */ "./js/modules/analytics-4/utils/index.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_material_components_layout__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/material-components/layout */ "./js/material-components/layout/index.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _DataSourceLink__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./DataSourceLink */ "./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/DataSourceLink.js");
/* harmony import */ var _TotalUserCount__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./TotalUserCount */ "./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/TotalUserCount.js");
/* harmony import */ var _UserCountGraph__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./UserCountGraph */ "./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/UserCountGraph.js");
/* harmony import */ var _DimensionTabs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./DimensionTabs */ "./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/DimensionTabs.js");
/* harmony import */ var _UserDimensionsPieChart__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./UserDimensionsPieChart */ "./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/UserDimensionsPieChart.js");
/* harmony import */ var _js_modules_analytics_4_hooks_useAllTrafficWidgetReport__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/js/modules/analytics-4/hooks/useAllTrafficWidgetReport */ "./js/modules/analytics-4/hooks/useAllTrafficWidgetReport.js");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/* harmony import */ var _js_components_surveys_SurveyViewTrigger__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/js/components/surveys/SurveyViewTrigger */ "./js/components/surveys/SurveyViewTrigger.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * DashboardAllTrafficWidgetGA4 component
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


















function DashboardAllTrafficWidgetGA4(props) {
  const {
    Widget,
    WidgetReportError
  } = props;
  const viewOnly = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_15__["default"])();
  const [firstLoad, setFirstLoad] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useState)(true);
  const [currentRange, setCurrentRange] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useState)('');
  const canViewSharedAnalytics4 = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    if (!viewOnly) {
      return true;
    }
    return select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).canViewSharedModule(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_2__.MODULE_SLUG_ANALYTICS_4);
  });
  const isGatheringData = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => canViewSharedAnalytics4 && select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).isGatheringData());
  const dateRange = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).getDateRange());
  const dimensionName = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_UI).getValue(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.UI_DIMENSION_NAME) || 'sessionDefaultChannelGrouping');
  const dimensionValue = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_UI).getValue(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.UI_DIMENSION_VALUE));
  const {
    compareStartDate,
    compareEndDate
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).getDateRangeDates({
    compare: true,
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.DATE_RANGE_OFFSET
  }));
  const {
    setValue
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_UI);
  const pieArgs = {
    compareStartDate,
    compareEndDate,
    dimensions: [dimensionName],
    orderby: [{
      metric: {
        metricName: 'totalUsers'
      },
      desc: true
    }],
    reportID: 'analytics-4_dashboard-all-traffic-widget-ga4_widget_pieArgs'
  };
  const graphArgs = {
    dimensions: ['date'],
    orderby: [{
      dimension: {
        dimensionName: 'date'
      }
    }],
    reportID: 'analytics-4_dashboard-all-traffic-widget-ga4_widget_graphArgs'
  };
  const totalsArgs = {
    compareStartDate,
    compareEndDate,
    reportID: 'analytics-4_dashboard-all-traffic-widget-ga4_widget_totalsArgs'
  };
  if (dimensionName && dimensionValue) {
    graphArgs.dimensionFilters = {
      [dimensionName]: dimensionValue
    };
    totalsArgs.dimensionFilters = {
      [dimensionName]: dimensionValue
    };
  }
  const {
    loaded: pieChartLoaded,
    error: pieChartError,
    report: pieChartReport
  } = (0,_js_modules_analytics_4_hooks_useAllTrafficWidgetReport__WEBPACK_IMPORTED_MODULE_14__["default"])(pieArgs);
  const {
    loaded: userCountGraphLoaded,
    error: userCountGraphError,
    report: userCountGraphReport
  } = (0,_js_modules_analytics_4_hooks_useAllTrafficWidgetReport__WEBPACK_IMPORTED_MODULE_14__["default"])(graphArgs);
  const {
    loaded: totalUsersLoaded,
    error: totalUsersError,
    report: totalUsersReport
  } = (0,_js_modules_analytics_4_hooks_useAllTrafficWidgetReport__WEBPACK_IMPORTED_MODULE_14__["default"])(totalsArgs);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useEffect)(() => {
    if (dateRange !== currentRange) {
      setFirstLoad(true);
      setCurrentRange(dateRange);
    } else if (pieChartLoaded && totalUsersLoaded && userCountGraphLoaded) {
      setFirstLoad(false);
    }
  }, [pieChartLoaded, totalUsersLoaded, userCountGraphLoaded, dateRange, currentRange]);

  // Set a flag in the core/ui store when all data is loaded.
  // Currently only used by the feature tour to delay showing
  // while the widget is in a loading state.
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.useEffect)(() => {
    if (firstLoad && pieChartLoaded && totalUsersLoaded && userCountGraphLoaded) {
      setValue(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.UI_ALL_TRAFFIC_LOADED, true);
    }
  }, [firstLoad, pieChartLoaded, totalUsersLoaded, userCountGraphLoaded, setValue]);

  // The User Dimensions Pie Chart uses the sample report to check
  // for zero data, so we need to retry the sample report to make
  // sure the pie chart reloads correctly.
  const sampleReportError = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getSampleReportArgs()]));
  const retryableErrors = [pieChartError, sampleReportError, totalUsersError, userCountGraphError].filter(Boolean);
  if (pieChartError || totalUsersError || userCountGraphError) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(Widget, {
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(WidgetReportError, {
        moduleSlug: "analytics-4",
        error: retryableErrors
      })
    });
  }
  const pieChartReportIsZero = (0,_js_modules_analytics_4_utils__WEBPACK_IMPORTED_MODULE_4__.isZeroReport)(pieChartReport);
  const gatheringDataLoaded = isGatheringData !== undefined;
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)(Widget, {
    className: "googlesitekit-widget--footer-v2 googlesitekit-widget__analytics--all-traffic",
    Footer: () => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_DataSourceLink__WEBPACK_IMPORTED_MODULE_9__["default"], {}),
    noPadding: true,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_material_components_layout__WEBPACK_IMPORTED_MODULE_7__.Grid, {
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)(_js_material_components_layout__WEBPACK_IMPORTED_MODULE_7__.Row, {
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)(_js_material_components_layout__WEBPACK_IMPORTED_MODULE_7__.Cell, {
          className: "googlesitekit-widget--analyticsAllTraffic__totals",
          lgSize: 7,
          mdSize: 8,
          children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_TotalUserCount__WEBPACK_IMPORTED_MODULE_10__["default"], {
            loaded: gatheringDataLoaded && totalUsersLoaded && !firstLoad,
            report: totalUsersReport,
            error: totalUsersError,
            dimensionValue: dimensionValue,
            gatheringData: isGatheringData
          }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_UserCountGraph__WEBPACK_IMPORTED_MODULE_11__["default"], {
            loaded: gatheringDataLoaded && userCountGraphLoaded && !firstLoad,
            error: userCountGraphError,
            report: userCountGraphReport,
            gatheringData: isGatheringData
          })]
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)(_js_material_components_layout__WEBPACK_IMPORTED_MODULE_7__.Cell, {
          className: "googlesitekit-widget--analyticsAllTraffic__dimensions",
          lgSize: 5,
          mdSize: 8,
          children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_DimensionTabs__WEBPACK_IMPORTED_MODULE_12__["default"], {
            loaded: gatheringDataLoaded && !firstLoad,
            dimensionName: dimensionName,
            gatheringData: isGatheringData,
            isZeroData: pieChartReportIsZero
          }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_UserDimensionsPieChart__WEBPACK_IMPORTED_MODULE_13__["default"], {
            dimensionName: dimensionName,
            dimensionValue: dimensionValue,
            gatheringData: isGatheringData,
            loaded: gatheringDataLoaded && pieChartLoaded && !firstLoad,
            report: pieChartReport
          })]
        })]
      })
    }), !viewOnly && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_components_surveys_SurveyViewTrigger__WEBPACK_IMPORTED_MODULE_16__["default"], {
      triggerID: "view_ga4_dashboard",
      ttl: _js_util__WEBPACK_IMPORTED_MODULE_3__.DAY_IN_SECONDS
    })]
  });
}
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_8__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_2__.MODULE_SLUG_ANALYTICS_4
})(DashboardAllTrafficWidgetGA4));

/***/ }),

/***/ "./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/utils.js":
/*!*******************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/utils.js ***!
  \*******************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   createZeroDataRow: () => (/* binding */ createZeroDataRow),
/* harmony export */   getTooltipHelp: () => (/* binding */ getTooltipHelp)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/serialize.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_components_Typography__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/Typography */ "./js/components/Typography/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * DashboardAllTrafficWidgetGA4 utility functions.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



/**
 * Creates a GA4 report row for the given date, with a zero for the metric value.
 *
 * @since 1.96.0
 * @since 1.123.0 Migrated from analytics to analytics-4.
 *
 * @param {string} date Date in YYYY-MM-DD format.
 * @return {Object} Row object with the date in the GA4 report format as the dimension value, and a zero for the metric value.
 */

function createZeroDataRow(date) {
  // Note, this uses `replace()` rather than `replaceAll()` as our current version of Node does not support `replaceAll()`.
  // TODO: Replace with `replaceAll()` when we upgrade to Node 15+.
  return {
    dimensionValues: [{
      value: date.replace(new RegExp('-', 'g'), '')
    }],
    metricValues: [{
      value: 0
    }]
  };
}
/**
 * Gets HTML string for a tooltip help link.
 *
 * @since 1.116.0
 * @since 1.123.0 Migrated from analytics to analytics-4.
 *
 * @param {string} url      The URL to link to.
 * @param {string} label    The label for the link.
 * @param {string} rowLabel The label for the row.
 * @return {string} The HTML string for the tooltip help link.
 */
function getTooltipHelp(url, label, rowLabel) {
  return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_3__["default"])(
  /*#__PURE__*/
  // We're not using the `P` component here because that uses `useBreakpoint`
  // under the hood. This causes issues when this function is used inside a
  // tooltip callback as that is not at the top-level of a component.
  (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_1__["default"], {
    as: "p",
    size: "medium",
    type: "body",
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_0__["default"], {
      className: "googlesitekit-cta-link__tooltip",
      href: url,
      "data-row-label": rowLabel,
      external: true,
      children: label
    })
  }));
}

/***/ }),

/***/ "./js/modules/analytics-4/components/dashboard/DashboardOverallPageMetricsWidgetGA4.js":
/*!*********************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/dashboard/DashboardOverallPageMetricsWidgetGA4.js ***!
  \*********************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @wordpress/url */ "../node_modules/@wordpress/url/build-module/is-url.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_material_components_layout__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/material-components/layout */ "./js/material-components/layout/index.js");
/* harmony import */ var _js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/components/PreviewBlock */ "./js/components/PreviewBlock.js");
/* harmony import */ var _js_components_DataBlock__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/components/DataBlock */ "./js/components/DataBlock/index.js");
/* harmony import */ var _js_components_Sparkline__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/components/Sparkline */ "./js/components/Sparkline.js");
/* harmony import */ var _js_components_SourceLink__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/components/SourceLink */ "./js/components/SourceLink.tsx");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _js_modules_analytics_4_utils_overall_page_metrics__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/overall-page-metrics */ "./js/modules/analytics-4/utils/overall-page-metrics.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_googlesitekit_widgets_components_WidgetHeaderTitle__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/js/googlesitekit/widgets/components/WidgetHeaderTitle */ "./js/googlesitekit/widgets/components/WidgetHeaderTitle.js");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/* harmony import */ var _js_components_DataBlockGroup__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/js/components/DataBlockGroup */ "./js/components/DataBlockGroup.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * DashboardOverallPageMetricsWidgetGA4 component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */

















function DashboardOverallPageMetricsWidgetGA4({
  Widget,
  WidgetReportError
}) {
  const isGatheringData = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).isGatheringData());
  const viewOnlyDashboard = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_15__["default"])();
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.DATE_RANGE_OFFSET,
    compare: true
  }));
  const url = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_SITE).getCurrentEntityURL());
  const args = {
    ...dates,
    dimensions: ['date'],
    metrics: [{
      name: 'screenPageViews'
    }, {
      name: 'sessions'
    }, {
      name: 'engagementRate'
    }, {
      name: 'averageSessionDuration'
    }],
    orderby: [{
      dimension: {
        dimensionName: 'date'
      }
    }],
    url,
    reportID: 'analytics-4_dashboard-overall-page-metrics-widget-args'
  };
  const reportArgs = {
    dates,
    // eslint-disable-next-line sitekit/acronym-case
    otherArgs: {
      collectionId: 'life-cycle'
    }
  };
  if ((0,_wordpress_url__WEBPACK_IMPORTED_MODULE_18__.isURL)(url)) {
    reportArgs.filters = {
      unifiedPagePathScreen: (0,_js_util__WEBPACK_IMPORTED_MODULE_13__.getURLPath)(url)
    };
  }
  const isLoading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [args]));
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [args]));
  const serviceURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    if (viewOnlyDashboard) {
      return null;
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getServiceReportURL('all-pages-and-screens', reportArgs);
  });
  const report = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getReport(args), [args]);
  const currentDayCount = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER).getDateRangeNumberOfDays());
  function Header() {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_googlesitekit_widgets_components_WidgetHeaderTitle__WEBPACK_IMPORTED_MODULE_14__["default"], {
      title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: number of days */
      (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__._n)('Overall page metrics over the last %s day', 'Overall page metrics over the last %s days', currentDayCount, 'google-site-kit'), currentDayCount)
    });
  }
  function Footer() {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_components_SourceLink__WEBPACK_IMPORTED_MODULE_10__["default"], {
      className: "googlesitekit-data-block__source",
      name: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__._x)('Analytics', 'Service name', 'google-site-kit'),
      href: serviceURL,
      external: true
    });
  }
  if (isLoading || isGatheringData === undefined) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(Widget, {
      Footer: Footer,
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_components_PreviewBlock__WEBPACK_IMPORTED_MODULE_7__["default"], {
        width: "100%",
        height: "222px"
      })
    });
  }
  if (error) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(Widget, {
      Footer: Footer,
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(WidgetReportError, {
        moduleSlug: "analytics-4",
        error: error
      })
    });
  }
  const data = (0,_js_modules_analytics_4_utils_overall_page_metrics__WEBPACK_IMPORTED_MODULE_12__.calculateOverallPageMetricsData)(report, dates.startDate);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(Widget, {
    Header: Header,
    Footer: Footer,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_material_components_layout__WEBPACK_IMPORTED_MODULE_6__.Grid, {
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_components_DataBlockGroup__WEBPACK_IMPORTED_MODULE_16__["default"], {
        className: "mdc-layout-grid__inner",
        children: data.map(({
          metric,
          title,
          sparkLineData,
          datapointUnit,
          total,
          change
        }) => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_material_components_layout__WEBPACK_IMPORTED_MODULE_6__.Cell, {
          smSize: 2,
          lgSize: 3,
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_components_DataBlock__WEBPACK_IMPORTED_MODULE_8__["default"], {
            title: title,
            datapoint: total,
            datapointUnit: datapointUnit,
            change: change,
            changeDataUnit: "%",
            gatheringData: isGatheringData,
            sparkline: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_components_Sparkline__WEBPACK_IMPORTED_MODULE_9__["default"], {
              data: sparkLineData,
              change: change,
              gatheringData: isGatheringData
            })
          })
        }, metric))
      })
    })
  });
}
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_11__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__.MODULE_SLUG_ANALYTICS_4
})(DashboardOverallPageMetricsWidgetGA4));

/***/ }),

/***/ "./js/modules/analytics-4/components/dashboard/EnhancedMeasurementActivationBanner/ProcessingBanner.js":
/*!*************************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/dashboard/EnhancedMeasurementActivationBanner/ProcessingBanner.js ***!
  \*************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ ProcessingBanner)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_9__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_notifications_components_layout_SetupCTA__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/notifications/components/layout/SetupCTA */ "./js/googlesitekit/notifications/components/layout/SetupCTA.js");
/* harmony import */ var _svg_graphics_banner_enhanced_measurement_setup_cta_svg_url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/svg/graphics/banner-enhanced-measurement-setup-cta.svg?url */ "./svg/graphics/banner-enhanced-measurement-setup-cta.svg?url");
/* harmony import */ var _svg_graphics_banner_enhanced_measurement_setup_cta_mobile_svg_url__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/svg/graphics/banner-enhanced-measurement-setup-cta-mobile.svg?url */ "./svg/graphics/banner-enhanced-measurement-setup-cta-mobile.svg?url");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * EnhancedMeasurementActivationBanner > ProcessingBanner component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */








function ProcessingBanner({
  id,
  Notification,
  onDismiss
}) {
  const documentationURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_SITE).getGoogleSupportURL({
    path: '/analytics/answer/9216061'
  }));
  const hasEditScope = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).hasScope(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.EDIT_SCOPE));
  const description = hasEditScope ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Enable enhanced measurement in Analytics to automatically track metrics like file downloads, video plays, form interactions, etc. No extra code required.', 'google-site-kit') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Enable enhanced measurement in Analytics to automatically track metrics like file downloads, video plays, form interactions, etc. No extra code required — you’ll be redirected to give permission for Site Kit to enable it on your behalf.', 'google-site-kit');
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(Notification, {
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_js_googlesitekit_notifications_components_layout_SetupCTA__WEBPACK_IMPORTED_MODULE_3__["default"], {
      notificationID: id,
      title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Understand how visitors interact with your content', 'google-site-kit'),
      description: description,
      learnMoreLink: {
        href: documentationURL
      },
      ctaButton: {
        label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Enable now', 'google-site-kit'),
        disabled: true
      },
      dismissButton: {
        label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Maybe later', 'google-site-kit'),
        onClick: onDismiss
      },
      waitingProgress: {
        verticalSpacing: 0,
        // Remove vertical spacing to show the banner flush to the header.
        height: 7,
        indeterminate: true
      },
      helpText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You can always add/edit this in the Site Kit Settings', 'google-site-kit'),
      svg: {
        desktop: _svg_graphics_banner_enhanced_measurement_setup_cta_svg_url__WEBPACK_IMPORTED_MODULE_4__["default"],
        mobile: _svg_graphics_banner_enhanced_measurement_setup_cta_mobile_svg_url__WEBPACK_IMPORTED_MODULE_5__["default"],
        verticalPosition: 'center'
      }
    })
  });
}
ProcessingBanner.propTypes = {
  id: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().string).isRequired,
  Notification: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().elementType),
  onDismiss: (prop_types__WEBPACK_IMPORTED_MODULE_9___default().func)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/dashboard/EnhancedMeasurementActivationBanner/SetupBanner.js":
/*!********************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/dashboard/EnhancedMeasurementActivationBanner/SetupBanner.js ***!
  \********************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SetupBanner)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_17__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @wordpress/url */ "../node_modules/@wordpress/url/build-module/add-query-args.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_location_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/location/constants */ "./js/googlesitekit/datastore/location/constants.js");
/* harmony import */ var _js_googlesitekit_notifications_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/notifications/datastore/constants */ "./js/googlesitekit/notifications/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_util_errors__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util/errors */ "./js/util/errors.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/googlesitekit/notifications/constants */ "./js/googlesitekit/notifications/constants.js");
/* harmony import */ var _js_googlesitekit_notifications_components_layout_SetupCTA__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/googlesitekit/notifications/components/layout/SetupCTA */ "./js/googlesitekit/notifications/components/layout/SetupCTA.js");
/* harmony import */ var _svg_graphics_banner_enhanced_measurement_setup_cta_svg_url__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/svg/graphics/banner-enhanced-measurement-setup-cta.svg?url */ "./svg/graphics/banner-enhanced-measurement-setup-cta.svg?url");
/* harmony import */ var _svg_graphics_banner_enhanced_measurement_setup_cta_mobile_svg_url__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/svg/graphics/banner-enhanced-measurement-setup-cta-mobile.svg?url */ "./svg/graphics/banner-enhanced-measurement-setup-cta-mobile.svg?url");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * EnhancedMeasurementActivationBanner > SetupBanner component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */














function SetupBanner(props) {
  const {
    id,
    Notification,
    errorNotice,
    isSaving,
    onDismiss,
    onSubmit
  } = props;

  // The `enhanced_measurement` query value is arbitrary and serves two purposes:
  // 1. To ensure that `authentication_success` isn't appended when returning from OAuth.
  // 2. To guarantee it doesn't match any existing notifications in the `BannerNotifications` component, thus preventing any unintended displays.
  const redirectURL = (0,_wordpress_url__WEBPACK_IMPORTED_MODULE_15__.addQueryArgs)(__webpack_require__.g.location.href, {
    notification: 'enhanced_measurement'
  });
  const hasEditScope = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).hasScope(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.EDIT_SCOPE));
  const documentationURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_SITE).getGoogleSupportURL({
    path: '/analytics/answer/9216061'
  }));
  const isNavigatingToOAuthURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    const OAuthURL = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).getConnectURL({
      additionalScopes: [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.EDIT_SCOPE],
      redirectURL
    });
    if (!OAuthURL) {
      return false;
    }
    return select(_js_googlesitekit_datastore_location_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_LOCATION).isNavigatingTo(OAuthURL);
  });
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_FORMS);
  const {
    setPermissionScopeError
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER);
  const {
    pinNotification
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_notifications_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_NOTIFICATIONS);
  const handleSubmitChanges = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_16__.useCallback)(async () => {
    const scopes = [];
    if (hasEditScope === false) {
      scopes.push(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.EDIT_SCOPE);
    }

    // If scope not granted, trigger scope error right away. These are
    // typically handled automatically based on API responses, but
    // this particular case has some special handling to improve UX.
    if (scopes.length > 0) {
      setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.FORM_SETUP, {
        autoSubmit: true
      });
      await pinNotification(id, _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_10__.NOTIFICATION_GROUPS.SETUP_CTAS);
      setPermissionScopeError({
        code: _js_util_errors__WEBPACK_IMPORTED_MODULE_8__.ERROR_CODE_MISSING_REQUIRED_SCOPE,
        message: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Additional permissions are required to enable enhanced measurement for the selected web data stream', 'google-site-kit'),
        data: {
          status: 403,
          scopes,
          skipModal: true,
          redirectURL
        }
      });
      return;
    }
    await onSubmit();
  }, [hasEditScope, id, onSubmit, pinNotification, redirectURL, setPermissionScopeError, setValues]);
  const {
    triggerSurvey
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER);
  const handleView = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_16__.useCallback)(() => {
    triggerSurvey('view_enhanced_measurement_cta', {
      ttl: _js_util__WEBPACK_IMPORTED_MODULE_9__.DAY_IN_SECONDS
    });
  }, [triggerSurvey]);
  const description = hasEditScope ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Enable enhanced measurement in Analytics to automatically track metrics like file downloads, video plays, form interactions, etc. No extra code required.', 'google-site-kit') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Enable enhanced measurement in Analytics to automatically track metrics like file downloads, video plays, form interactions, etc. No extra code required — you’ll be redirected to give permission for Site Kit to enable it on your behalf.', 'google-site-kit');
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx)(Notification, {
    onView: handleView,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx)(_js_googlesitekit_notifications_components_layout_SetupCTA__WEBPACK_IMPORTED_MODULE_11__["default"], {
      notificationID: id,
      title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Understand how visitors interact with your content', 'google-site-kit'),
      description: description,
      errorText: errorNotice?.message,
      learnMoreLink: {
        href: documentationURL
      },
      ctaButton: {
        label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Enable now', 'google-site-kit'),
        onClick: handleSubmitChanges,
        disabled: isSaving || isNavigatingToOAuthURL,
        inProgress: isSaving || isNavigatingToOAuthURL
      },
      dismissButton: {
        label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Maybe later', 'google-site-kit'),
        onClick: onDismiss,
        disabled: isSaving || isNavigatingToOAuthURL
      },
      helpText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You can always add/edit this in the Site Kit Settings', 'google-site-kit'),
      svg: {
        desktop: _svg_graphics_banner_enhanced_measurement_setup_cta_svg_url__WEBPACK_IMPORTED_MODULE_12__["default"],
        mobile: _svg_graphics_banner_enhanced_measurement_setup_cta_mobile_svg_url__WEBPACK_IMPORTED_MODULE_13__["default"],
        verticalPosition: 'center'
      }
    })
  });
}
SetupBanner.propTypes = {
  id: (prop_types__WEBPACK_IMPORTED_MODULE_17___default().string).isRequired,
  Notification: (prop_types__WEBPACK_IMPORTED_MODULE_17___default().elementType),
  errorNotice: (prop_types__WEBPACK_IMPORTED_MODULE_17___default().object),
  isSaving: (prop_types__WEBPACK_IMPORTED_MODULE_17___default().bool),
  onSubmit: (prop_types__WEBPACK_IMPORTED_MODULE_17___default().func),
  onDismiss: (prop_types__WEBPACK_IMPORTED_MODULE_17___default().func)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/dashboard/EnhancedMeasurementActivationBanner/SuccessBanner.js":
/*!**********************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/dashboard/EnhancedMeasurementActivationBanner/SuccessBanner.js ***!
  \**********************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SuccessBanner)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_12__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_googlesitekit_notifications_components_layout_NoticeNotification__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/notifications/components/layout/NoticeNotification */ "./js/googlesitekit/notifications/components/layout/NoticeNotification.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_components_Notice__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/components/Notice */ "./js/components/Notice/index.js");
/* harmony import */ var _js_googlesitekit_notifications_hooks_useNotificationEvents__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/googlesitekit/notifications/hooks/useNotificationEvents */ "./js/googlesitekit/notifications/hooks/useNotificationEvents.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * EnhancedMeasurementActivationBanner > SuccessBanner component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */









function SuccessBanner({
  id,
  Notification
}) {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_3__["default"])();
  const documentationURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_SITE).getGoogleSupportURL({
    path: '/analytics/answer/9216061'
  }));

  // All three variations (SetupBanner, InProgressBanner and SuccessBanner) are under a single parent
  // (EnhancedMeasurementActivationBanner). The <Notification> component wrapping all of them share
  // the same "notification ID". So this event is not auto-tracked by the new <Notification> component.
  // It considers the EnhancedMeasurementActivationBanner as already viewed when SetupBanner is
  // rendered and doesn't track the view again when the SuccessBanner variant is rendered.
  const handleView = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_10__.useCallback)(() => {
    (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.trackEvent)(`${viewContext}_enhanced-measurement-success`, 'view_notification');
  }, [viewContext]);
  const trackEvents = (0,_js_googlesitekit_notifications_hooks_useNotificationEvents__WEBPACK_IMPORTED_MODULE_8__["default"])(id);
  const gaTrackingEventArgs = {
    category: `${viewContext}_enhanced-measurement-success`
  };
  function learnMoreTrackEvent() {
    trackEvents.clickLearnMore(gaTrackingEventArgs.label, gaTrackingEventArgs.value);
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(Notification, {
    onView: handleView,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_googlesitekit_notifications_components_layout_NoticeNotification__WEBPACK_IMPORTED_MODULE_5__["default"], {
      notificationID: id,
      type: _js_components_Notice__WEBPACK_IMPORTED_MODULE_7__["default"].TYPES.SUCCESS,
      title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You successfully enabled enhanced measurement for your site', 'google-site-kit'),
      description: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_11__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Your configured Analytics web data stream will now automatically measure interactions on your site in addition to standard page views measurement. <a>Learn more</a>', 'google-site-kit'), {
        a: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_6__["default"], {
          href: documentationURL,
          onClick: learnMoreTrackEvent,
          external: true
        })
      }),
      gaTrackingEventArgs: gaTrackingEventArgs
    })
  });
}
SuccessBanner.propTypes = {
  id: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().string).isRequired,
  Notification: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().elementType)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/dashboard/EnhancedMeasurementActivationBanner/index.js":
/*!**************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/dashboard/EnhancedMeasurementActivationBanner/index.js ***!
  \**************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ EnhancedMeasurementActivationBanner)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_15__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_googlesitekit_notifications_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/notifications/datastore/constants */ "./js/googlesitekit/notifications/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/googlesitekit/notifications/constants */ "./js/googlesitekit/notifications/constants.js");
/* harmony import */ var _js_components_AdminScreenTooltip_useShowTooltip__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/components/AdminScreenTooltip/useShowTooltip */ "./js/components/AdminScreenTooltip/useShowTooltip.js");
/* harmony import */ var _ProcessingBanner__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ProcessingBanner */ "./js/modules/analytics-4/components/dashboard/EnhancedMeasurementActivationBanner/ProcessingBanner.js");
/* harmony import */ var _SetupBanner__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./SetupBanner */ "./js/modules/analytics-4/components/dashboard/EnhancedMeasurementActivationBanner/SetupBanner.js");
/* harmony import */ var _SuccessBanner__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./SuccessBanner */ "./js/modules/analytics-4/components/dashboard/EnhancedMeasurementActivationBanner/SuccessBanner.js");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * EnhancedMeasurementActivationBanner component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */













function EnhancedMeasurementActivationBanner({
  id,
  Notification
}) {
  const [step, setStep] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_14__.useState)(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_6__.ACTIVATION_STEP_SETUP);
  const [isSaving, setIsSaving] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_14__.useState)(false);
  const [errorNotice, setErrorNotice] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_14__.useState)(null);
  const hasEditScope = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER).hasScope(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.EDIT_SCOPE));
  const autoSubmit = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_12__["default"])(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.FORM_SETUP, 'autoSubmit');
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_FORMS);
  const {
    submitChanges
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4);
  const {
    unpinNotification
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_notifications_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_NOTIFICATIONS);
  const tooltipSettings = {
    tooltipSlug: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_6__.ENHANCED_MEASUREMENT_ACTIVATION_BANNER_TOOLTIP_STATE_KEY,
    content: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('You can always enable Enhanced Measurement in Settings later', 'google-site-kit'),
    dismissLabel: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Got it', 'google-site-kit')
  };
  const showTooltip = (0,_js_components_AdminScreenTooltip_useShowTooltip__WEBPACK_IMPORTED_MODULE_8__.useShowTooltip)(tooltipSettings);
  const handleSubmit = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_14__.useCallback)(async () => {
    setIsSaving(true);
    setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.ENHANCED_MEASUREMENT_FORM, {
      [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.ENHANCED_MEASUREMENT_ENABLED]: true
    });
    const {
      error
    } = await submitChanges();
    setIsSaving(false);
    if (error) {
      setErrorNotice(error);
      setStep(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_6__.ACTIVATION_STEP_SETUP);
      return;
    }
    await unpinNotification(id, _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_7__.NOTIFICATION_GROUPS.SETUP_CTAS);
    setStep(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_6__.ACTIVATION_STEP_SUCCESS);
  }, [id, setValues, submitChanges, unpinNotification]);

  // If the user lands back on this component with autoSubmit and the edit scope,
  // resubmit the form.
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_14__.useEffect)(() => {
    async function handleAutoSubmit() {
      // Auto-submit should only auto-invoke once.
      setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.FORM_SETUP, {
        autoSubmit: false
      });
      setStep(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_6__.ACTIVATION_STEP_IN_PROGRESS);
      await handleSubmit();
    }
    if (autoSubmit && hasEditScope) {
      handleAutoSubmit();
    }
  }, [hasEditScope, setValues, handleSubmit, autoSubmit]);
  if (step === _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_6__.ACTIVATION_STEP_SETUP) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_SetupBanner__WEBPACK_IMPORTED_MODULE_10__["default"], {
      id: id,
      Notification: Notification,
      errorNotice: errorNotice,
      isSaving: isSaving,
      onDismiss: showTooltip,
      onSubmit: handleSubmit
    });
  }
  if (step === _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_6__.ACTIVATION_STEP_IN_PROGRESS) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_ProcessingBanner__WEBPACK_IMPORTED_MODULE_9__["default"], {
      id: id,
      Notification: Notification,
      onDismiss: showTooltip
    });
  }
  if (step === _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_6__.ACTIVATION_STEP_SUCCESS) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_SuccessBanner__WEBPACK_IMPORTED_MODULE_11__["default"], {
      id: id,
      Notification: Notification
    });
  }
  return null;
}
EnhancedMeasurementActivationBanner.propTypes = {
  id: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().string).isRequired,
  Notification: (prop_types__WEBPACK_IMPORTED_MODULE_15___default().elementType).isRequired
};

/***/ }),

/***/ "./js/modules/analytics-4/components/dashboard/index.js":
/*!**************************************************************!*\
  !*** ./js/modules/analytics-4/components/dashboard/index.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   DashboardAllTrafficWidgetGA4: () => (/* reexport safe */ _DashboardAllTrafficWidgetGA4__WEBPACK_IMPORTED_MODULE_1__["default"]),
/* harmony export */   DashboardOverallPageMetricsWidgetGA4: () => (/* reexport safe */ _DashboardOverallPageMetricsWidgetGA4__WEBPACK_IMPORTED_MODULE_2__["default"]),
/* harmony export */   EnhancedMeasurementActivationBanner: () => (/* reexport safe */ _EnhancedMeasurementActivationBanner__WEBPACK_IMPORTED_MODULE_0__["default"])
/* harmony export */ });
/* harmony import */ var _EnhancedMeasurementActivationBanner__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./EnhancedMeasurementActivationBanner */ "./js/modules/analytics-4/components/dashboard/EnhancedMeasurementActivationBanner/index.js");
/* harmony import */ var _DashboardAllTrafficWidgetGA4__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DashboardAllTrafficWidgetGA4 */ "./js/modules/analytics-4/components/dashboard/DashboardAllTrafficWidgetGA4/index.js");
/* harmony import */ var _DashboardOverallPageMetricsWidgetGA4__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./DashboardOverallPageMetricsWidgetGA4 */ "./js/modules/analytics-4/components/dashboard/DashboardOverallPageMetricsWidgetGA4.js");
/**
 * GA4 Dashboard components.
 *
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */





/***/ }),

/***/ "./js/modules/analytics-4/components/key-metrics/AnalyticsUpdateError.js":
/*!*******************************************************************************!*\
  !*** ./js/modules/analytics-4/components/key-metrics/AnalyticsUpdateError.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AnalyticsUpdateError)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_components_KeyMetrics_MetricTileError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/KeyMetrics/MetricTileError */ "./js/components/KeyMetrics/MetricTileError.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */








function AnalyticsUpdateError(props) {
  const {
    onRetry,
    error,
    infoTooltip,
    headerText
  } = props;
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_7__["default"])();
  const helpLink = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_SITE).getErrorTroubleshootingLinkURL(error));
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_9__.useEffect)(() => {
    (0,_js_util__WEBPACK_IMPORTED_MODULE_6__.trackEventOnce)(`${viewContext}_kmw`, 'analytics_update_error');
  }, [viewContext]);
  const retry = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_9__.useCallback)(() => {
    (0,_js_util__WEBPACK_IMPORTED_MODULE_6__.trackEvent)(`${viewContext}_kmw`, 'analytics_update_error_retry');
    onRetry?.();
  }, [onRetry, viewContext]);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_js_components_KeyMetrics_MetricTileError__WEBPACK_IMPORTED_MODULE_5__["default"], {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Analytics update failed', 'google-site-kit'),
    headerText: headerText,
    infoTooltip: infoTooltip,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxs)("div", {
      className: "googlesitekit-report-error-actions",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.Button, {
        onClick: retry,
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Retry', 'google-site-kit')
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)("span", {
        className: "googlesitekit-error-retry-text",
        children: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_10__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Retry didn’t work? <a>Learn more</a>', 'google-site-kit'), {
          a: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_4__["default"], {
            href: helpLink,
            external: true,
            hideExternalIndicator: true
          })
        })
      })]
    })
  });
}
AnalyticsUpdateError.propTypes = {
  error: prop_types__WEBPACK_IMPORTED_MODULE_11___default().shape({}).isRequired,
  onRetry: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().func).isRequired,
  headerText: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().string),
  infoTooltip: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().string)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/key-metrics/CustomDimensionsMissingError.js":
/*!***************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/key-metrics/CustomDimensionsMissingError.js ***!
  \***************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ CustomDimensionsMissingError)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_components_KeyMetrics_MetricTileError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/KeyMetrics/MetricTileError */ "./js/components/KeyMetrics/MetricTileError.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */





function CustomDimensionsMissingError(props) {
  const {
    onRetry,
    infoTooltip,
    headerText
  } = props;
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_4__["default"])();
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_6__.useEffect)(() => {
    (0,_js_util__WEBPACK_IMPORTED_MODULE_3__.trackEventOnce)(`${viewContext}_kmw`, 'custom_dimension_missing_error');
  }, [viewContext]);
  const retry = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_6__.useCallback)(() => {
    (0,_js_util__WEBPACK_IMPORTED_MODULE_3__.trackEvent)(`${viewContext}_kmw`, 'custom_dimension_missing_error_retry');
    onRetry?.();
  }, [onRetry, viewContext]);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_KeyMetrics_MetricTileError__WEBPACK_IMPORTED_MODULE_2__["default"], {
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No data to show', 'google-site-kit'),
    headerText: headerText,
    infoTooltip: infoTooltip,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("div", {
      className: "googlesitekit-report-error-actions",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_1__.Button, {
        onClick: retry,
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Update', 'google-site-kit')
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("span", {
        className: "googlesitekit-error-retry-text",
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Update Analytics to track metric', 'google-site-kit')
      })]
    })
  });
}
CustomDimensionsMissingError.propTypes = {
  onRetry: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().func).isRequired,
  headerText: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string),
  infoTooltip: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/key-metrics/index.js":
/*!****************************************************************!*\
  !*** ./js/modules/analytics-4/components/key-metrics/index.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   AnalyticsUpdateError: () => (/* reexport safe */ _AnalyticsUpdateError__WEBPACK_IMPORTED_MODULE_0__["default"]),
/* harmony export */   CustomDimensionsMissingError: () => (/* reexport safe */ _CustomDimensionsMissingError__WEBPACK_IMPORTED_MODULE_1__["default"])
/* harmony export */ });
/* harmony import */ var _AnalyticsUpdateError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AnalyticsUpdateError */ "./js/modules/analytics-4/components/key-metrics/AnalyticsUpdateError.js");
/* harmony import */ var _CustomDimensionsMissingError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CustomDimensionsMissingError */ "./js/modules/analytics-4/components/key-metrics/CustomDimensionsMissingError.js");
/**
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */




/***/ }),

/***/ "./js/modules/analytics-4/components/module/ModulePopularPagesWidgetGA4/Footer.js":
/*!****************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/module/ModulePopularPagesWidgetGA4/Footer.js ***!
  \****************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Footer)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_components_SourceLink__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/SourceLink */ "./js/components/SourceLink.tsx");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Footer component of the ModulePopularPagesWidgetGA4 widget.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */






function Footer() {
  const viewOnlyDashboard = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_5__["default"])();
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.DATE_RANGE_OFFSET
  }));
  const sourceLinkURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    if (viewOnlyDashboard) {
      return null;
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getServiceReportURL('all-pages-and-screens', {
      dates,
      // eslint-disable-next-line sitekit/acronym-case
      otherArgs: {
        collectionId: 'life-cycle'
      }
    });
  });
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_js_components_SourceLink__WEBPACK_IMPORTED_MODULE_4__["default"], {
    href: sourceLinkURL,
    name: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__._x)('Analytics', 'Service name', 'google-site-kit'),
    external: true
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/module/ModulePopularPagesWidgetGA4/Header.js":
/*!****************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/module/ModulePopularPagesWidgetGA4/Header.js ***!
  \****************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ Header)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_googlesitekit_widgets_components_WidgetHeaderTitle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/widgets/components/WidgetHeaderTitle */ "./js/googlesitekit/widgets/components/WidgetHeaderTitle.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Header component of the ModulePopularPagesWidgetGA4 widget.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */




function Header() {
  const currentDayCount = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).getDateRangeNumberOfDays());
  const title = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: number of days */
  (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__._n)('Top content over the last %s day', 'Top content over the last %s days', currentDayCount, 'google-site-kit'), currentDayCount);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(_js_googlesitekit_widgets_components_WidgetHeaderTitle__WEBPACK_IMPORTED_MODULE_3__["default"], {
    title: title
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/module/ModulePopularPagesWidgetGA4/index.js":
/*!***************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/module/ModulePopularPagesWidgetGA4/index.js ***!
  \***************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_19__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _js_components_TableOverflowContainer__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/components/TableOverflowContainer */ "./js/components/TableOverflowContainer.js");
/* harmony import */ var _js_components_DetailsPermaLinks__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/components/DetailsPermaLinks */ "./js/components/DetailsPermaLinks.js");
/* harmony import */ var _js_components_ReportTable__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/components/ReportTable */ "./js/components/ReportTable.js");
/* harmony import */ var _js_components_PreviewTable__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/js/components/PreviewTable */ "./js/components/PreviewTable.js");
/* harmony import */ var _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common */ "./js/modules/analytics-4/components/common/index.js");
/* harmony import */ var _Header__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./Header */ "./js/modules/analytics-4/components/module/ModulePopularPagesWidgetGA4/Header.js");
/* harmony import */ var _Footer__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./Footer */ "./js/modules/analytics-4/components/module/ModulePopularPagesWidgetGA4/Footer.js");
/* harmony import */ var _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/js/hooks/useBreakpoint */ "./js/hooks/useBreakpoint.ts");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * ModulePopularPagesWidgetGA4 component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */




/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */
















function ModulePopularPagesWidgetGA4(props) {
  const {
    Widget,
    WidgetReportError
  } = props;
  const breakpoint = (0,_js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_16__.useBreakpoint)();
  const isGatheringData = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).isGatheringData());
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.DATE_RANGE_OFFSET
  }));
  const viewOnlyDashboard = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_17__["default"])();
  const args = {
    ...dates,
    dimensions: ['pagePath'],
    metrics: [{
      name: 'screenPageViews'
    }, {
      name: 'sessions'
    }, {
      name: 'engagementRate'
    }, {
      name: 'averageSessionDuration'
    }],
    orderby: [{
      metric: {
        metricName: 'screenPageViews'
      },
      desc: true
    }],
    limit: 10,
    reportID: 'analytics-4_module-popular-pages-widget-ga4_widget_args'
  };
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [args]));
  const report = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getReport(args), [args]);
  const titles = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useInViewSelect)(select => !error ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getPageTitles(report, args) : undefined, [error, report, args]);
  const loaded = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => {
    const reportLoaded = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [args]);
    return undefined !== error || reportLoaded && undefined !== titles;
  });
  const loading = !loaded || isGatheringData === undefined;
  if (loading) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__.jsx)(Widget, {
      Header: _Header__WEBPACK_IMPORTED_MODULE_14__["default"],
      Footer: _Footer__WEBPACK_IMPORTED_MODULE_15__["default"],
      noPadding: true,
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__.jsx)(_js_components_PreviewTable__WEBPACK_IMPORTED_MODULE_12__["default"], {
        padding: true
      })
    });
  }
  if (error) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__.jsx)(Widget, {
      Header: _Header__WEBPACK_IMPORTED_MODULE_14__["default"],
      Footer: _Footer__WEBPACK_IMPORTED_MODULE_15__["default"],
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__.jsx)(WidgetReportError, {
        moduleSlug: "analytics-4",
        error: error
      })
    });
  }
  const columnClassName = 'googlesitekit-typography googlesitekit-typography--title googlesitekit-typography--small';
  const tableColumns = [{
    columnHeaderClassName: columnClassName,
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Title', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Page Title', 'google-site-kit'),
    primary: true,
    Component({
      row
    }) {
      const [{
        value: title
      }, {
        value: url
      }] = row.dimensionValues;
      const serviceURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.useSelect)(select => {
        if (viewOnlyDashboard) {
          return null;
        }
        return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getServiceReportURL('all-pages-and-screens', {
          filters: {
            unifiedPagePathScreen: url
          },
          dates
        });
      });
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__.jsx)(_js_components_DetailsPermaLinks__WEBPACK_IMPORTED_MODULE_10__["default"], {
        title: title,
        path: url,
        serviceURL: serviceURL
      });
    }
  }, {
    columnHeaderClassName: columnClassName,
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Pageviews', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Pageviews', 'google-site-kit'),
    field: 'metricValues.0.value',
    Component({
      fieldValue
    }) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__.jsx)("span", {
        children: (0,_js_util__WEBPACK_IMPORTED_MODULE_7__.numFmt)(fieldValue, {
          style: 'decimal'
        })
      });
    }
  }, {
    columnHeaderClassName: columnClassName,
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Sessions', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Sessions', 'google-site-kit'),
    field: 'metricValues.1.value',
    className: 'googlesitekit-table__head-item--sessions',
    Component({
      fieldValue
    }) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__.jsx)("span", {
        children: (0,_js_util__WEBPACK_IMPORTED_MODULE_7__.numFmt)(fieldValue, {
          style: 'decimal'
        })
      });
    }
  }, {
    columnHeaderClassName: columnClassName,
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Engagement Rate', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Engagement Rate', 'google-site-kit'),
    field: 'metricValues.2.value',
    className: 'googlesitekit-table__head-item--engagement-rate',
    Component({
      fieldValue
    }) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__.jsx)("span", {
        children: (0,_js_util__WEBPACK_IMPORTED_MODULE_7__.numFmt)(fieldValue, '%')
      });
    }
  }, {
    columnHeaderClassName: columnClassName,
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Session Duration', 'google-site-kit'),
    description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Session Duration', 'google-site-kit'),
    field: 'metricValues.3.value',
    Component({
      fieldValue
    }) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__.jsx)("span", {
        children: (0,_js_util__WEBPACK_IMPORTED_MODULE_7__.numFmt)(fieldValue, 's')
      });
    }
  }];
  const rows = report?.rows?.length ? (0,lodash__WEBPACK_IMPORTED_MODULE_1__.cloneDeep)(report.rows) : [];
  const ZeroState = _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_13__.ZeroDataMessage;

  // Combine the titles from the pageTitles with the rows from the metrics report.
  rows.forEach(row => {
    const url = row.dimensionValues[0].value;
    row.dimensionValues.unshift({
      value: titles[url]
    }); // We always have an entry for titles[url].
  });
  const tabbedLayout = breakpoint === _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_16__.BREAKPOINT_SMALL || breakpoint === _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_16__.BREAKPOINT_TABLET;
  const reportTable = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__.jsx)(_js_components_ReportTable__WEBPACK_IMPORTED_MODULE_11__["default"], {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()({
      'googlesitekit-analytics-popular-pages-widget__report-table--tabbed-layout': tabbedLayout
    }),
    rows: rows,
    columns: tableColumns,
    zeroState: ZeroState,
    gatheringData: isGatheringData,
    tabbedLayout: tabbedLayout
  });
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__.jsx)(Widget, {
    Header: _Header__WEBPACK_IMPORTED_MODULE_14__["default"],
    Footer: _Footer__WEBPACK_IMPORTED_MODULE_15__["default"],
    noPadding: true,
    children: tabbedLayout ? reportTable : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__.jsx)(_js_components_TableOverflowContainer__WEBPACK_IMPORTED_MODULE_9__["default"], {
      children: reportTable
    })
  });
}
ModulePopularPagesWidgetGA4.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_19___default().elementType).isRequired,
  WidgetReportError: (prop_types__WEBPACK_IMPORTED_MODULE_19___default().elementType).isRequired,
  WidgetReportZero: (prop_types__WEBPACK_IMPORTED_MODULE_19___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_8__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_6__.MODULE_SLUG_ANALYTICS_4
})(ModulePopularPagesWidgetGA4));

/***/ }),

/***/ "./js/modules/analytics-4/components/module/index.js":
/*!***********************************************************!*\
  !*** ./js/modules/analytics-4/components/module/index.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   ModulePopularPagesWidgetGA4: () => (/* reexport safe */ _ModulePopularPagesWidgetGA4__WEBPACK_IMPORTED_MODULE_0__["default"])
/* harmony export */ });
/* harmony import */ var _ModulePopularPagesWidgetGA4__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ModulePopularPagesWidgetGA4 */ "./js/modules/analytics-4/components/module/ModulePopularPagesWidgetGA4/index.js");
/**
 * Analytics module page components.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */



/***/ }),

/***/ "./js/modules/analytics-4/components/notifications/EnhancedConversionsNotification.js":
/*!********************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/notifications/EnhancedConversionsNotification.js ***!
  \********************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   ENHANCED_CONVERSIONS_NOTIFICATION_ANALYTICS: () => (/* binding */ ENHANCED_CONVERSIONS_NOTIFICATION_ANALYTICS),
/* harmony export */   "default": () => (/* binding */ EnhancedConversionsNotification)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_util_escape_uri__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/util/escape-uri */ "./js/util/escape-uri.ts");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_components_Notice_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/Notice/constants */ "./js/components/Notice/constants.js");
/* harmony import */ var _js_googlesitekit_notifications_components_common_LearnMoreLink__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/notifications/components/common/LearnMoreLink */ "./js/googlesitekit/notifications/components/common/LearnMoreLink.js");
/* harmony import */ var _js_googlesitekit_notifications_components_layout_NoticeNotification__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/googlesitekit/notifications/components/layout/NoticeNotification */ "./js/googlesitekit/notifications/components/layout/NoticeNotification.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Analytics EnhancedConversionsNotification component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */








const ENHANCED_CONVERSIONS_NOTIFICATION_ANALYTICS = 'ecee-notification-analytics';
function EnhancedConversionsNotification({
  id,
  Notification
}) {
  const documentationURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_SITE).getDocumentationLinkURL('enhanced-conversions-analytics'));
  const ctaURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    const {
      getAccountID,
      getPropertyID,
      getServiceURL
    } = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4);
    const accountID = getAccountID();
    const propertyID = getPropertyID();
    return getServiceURL({
      path: (0,_js_util_escape_uri__WEBPACK_IMPORTED_MODULE_2__.escapeURI)`/a${accountID}p${propertyID}/admin/datapolicies/datacollection`
    });
  });
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(Notification, {
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_js_googlesitekit_notifications_components_layout_NoticeNotification__WEBPACK_IMPORTED_MODULE_7__["default"], {
      notificationID: id,
      type: _js_components_Notice_constants__WEBPACK_IMPORTED_MODULE_5__.TYPES.INFO_ALT,
      title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Boost your Analytics data with more metrics about your visitors', 'google-site-kit'),
      description: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_9__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Site Kit now supports user-provided data collection, a free feature which helps you get a more complete and reliable count of your sales and leads from your website, even when people switch devices. To activate, turn on the setting for collecting user data in your Analytics account. <a />', 'google-site-kit'), {
        a: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_js_googlesitekit_notifications_components_common_LearnMoreLink__WEBPACK_IMPORTED_MODULE_6__["default"], {
          id: id,
          label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Learn more', 'google-site-kit'),
          url: documentationURL
        })
      }),
      dismissButton: {
        label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No thanks', 'google-site-kit')
      },
      ctaButton: {
        label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Go to Analytics', 'google-site-kit'),
        href: ctaURL,
        dismissOnClick: true,
        external: true,
        hideExternalIndicator: true
      }
    })
  });
}
EnhancedConversionsNotification.propTypes = {
  id: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().string).isRequired,
  Notification: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().elementType).isRequired
};

/***/ }),

/***/ "./js/modules/analytics-4/components/notifications/GoogleTagIDMismatchNotification.js":
/*!********************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/notifications/GoogleTagIDMismatchNotification.js ***!
  \********************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ GoogleTagIDMismatchNotification)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/validation */ "./js/modules/analytics-4/utils/validation.js");
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_utils_google_tag__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/google-tag */ "./js/modules/analytics-4/utils/google-tag.js");
/* harmony import */ var _js_googlesitekit_notifications_components_layout_BannerNotification__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/googlesitekit/notifications/components/layout/BannerNotification */ "./js/googlesitekit/notifications/components/layout/BannerNotification.js");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * GoogleTagIDMismatchNotification component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */









function GoogleTagIDMismatchNotification({
  id,
  Notification
}) {
  const currentAnalyticsConfig = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getSettings());
  const googleTagContainerDestinations = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => currentAnalyticsConfig?.googleTagAccountID && currentAnalyticsConfig?.googleTagContainerID && select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getGoogleTagContainerDestinations(currentAnalyticsConfig.googleTagAccountID, currentAnalyticsConfig.googleTagContainerID));
  const currentAnalyticsProperty = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => currentAnalyticsConfig?.propertyID && select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getProperty(currentAnalyticsConfig.propertyID));
  const newAnalyticsConfig = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    if (!Array.isArray(googleTagContainerDestinations)) {
      return null;
    }
    const destinationIDs = googleTagContainerDestinations.map(
    // eslint-disable-next-line sitekit/acronym-case
    destination => destination.destinationId);
    const validGA4MeasurementIDs = destinationIDs.filter(_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_4__.isValidMeasurementID);
    if (validGA4MeasurementIDs.length === 0) {
      return null;
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getAnalyticsConfigByMeasurementIDs(validGA4MeasurementIDs);
  });
  const newAnalyticsProperty = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => newAnalyticsConfig && newAnalyticsConfig.propertyID && select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getProperty(newAnalyticsConfig?.propertyID));
  const newGoogleTagID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    const tagIDs = currentAnalyticsConfig?.measurementID && select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getGoogleTagContainer(currentAnalyticsConfig?.measurementID)?.tagIds; // eslint-disable-line sitekit/acronym-case

    if (Array.isArray(tagIDs)) {
      return (0,_js_modules_analytics_4_utils_google_tag__WEBPACK_IMPORTED_MODULE_6__.getBestTagID)(tagIDs, currentAnalyticsConfig.measurementID);
    }
    return null;
  });
  const isDoingSubmitChanges = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_MODULES).isDoingSubmitChanges(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__.MODULE_SLUG_ANALYTICS_4));
  const {
    setPropertyID,
    setWebDataStreamID,
    setMeasurementID,
    updateSettingsForMeasurementID,
    submitChanges,
    setHasMismatchedGoogleTagID
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4);
  const updateToNewAnalyticsConfig = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_10__.useCallback)(async () => {
    setPropertyID(newAnalyticsConfig?.propertyID);
    setWebDataStreamID(newAnalyticsConfig?.webDataStreamID);
    setMeasurementID(newAnalyticsConfig?.measurementID);
    await submitChanges();
    setHasMismatchedGoogleTagID(false);
  }, [setPropertyID, setWebDataStreamID, setMeasurementID, newAnalyticsConfig?.propertyID, newAnalyticsConfig?.webDataStreamID, newAnalyticsConfig?.measurementID, submitChanges, setHasMismatchedGoogleTagID]);
  const updateGoogleTagConfig = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_10__.useCallback)(async () => {
    await updateSettingsForMeasurementID(currentAnalyticsConfig?.measurementID);
    await submitChanges();
    setHasMismatchedGoogleTagID(false);
  }, [updateSettingsForMeasurementID, currentAnalyticsConfig?.measurementID, submitChanges, setHasMismatchedGoogleTagID]);
  if (googleTagContainerDestinations === undefined || newAnalyticsProperty === undefined || newGoogleTagID === undefined || currentAnalyticsProperty === undefined) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_8__.ProgressBar, {
      className: "googlesitekit-banner__progress-bar",
      height: 4 // The progress bar height is set to 7px via CSS. This value removes margins within the ProgressBar component.
      ,
      indeterminate: true
    });
  }

  // If the current and new properties are the same, don't show the notification.
  // This can happen momentarily when the banner is actioned and the new property
  // has been saved, but the notification hasn't been dismissed / removed from the
  // queue yet. There is also a rare issue reported where hasMismatchedGoogleTagID
  // is set to true, but the new property is the same as the current one. This will
  // result in a perpetual loading banner on the screen if we returned the loading
  // bar. So it is safer to return null, as eventually, the syncGoogleTag action
  // will be called within an hour and reset this correctly.
  if (currentAnalyticsProperty?._id && newAnalyticsProperty?._id && currentAnalyticsProperty._id === newAnalyticsProperty._id) {
    return null;
  }
  if (newAnalyticsProperty) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(Notification, {
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_googlesitekit_notifications_components_layout_BannerNotification__WEBPACK_IMPORTED_MODULE_7__["default"], {
        notificationID: id,
        type: _js_googlesitekit_notifications_components_layout_BannerNotification__WEBPACK_IMPORTED_MODULE_7__.TYPES.WARNING,
        title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)("Update Site Kit's Analytics configuration to continue seeing Analytics data on the dashboard", 'google-site-kit'),
        description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: 1: Current GA4 property name. 2: Current GA4 property ID. 3: Newly linked GA4 property name. 4: Newly linked GA4 property ID. */
        (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('The Google Tag on your site is no longer associated with your current Google Analytics property "%1$s (%2$s)". It is now recording metrics to another Google Analytics property "%3$s (%4$s)". If you want to continue seeing Analytics data in the Site Kit dashboard, we suggest you update Site Kit’s Google Analytics configuration to show data for the property used in your Google Tag.', 'google-site-kit'), currentAnalyticsProperty.displayName, currentAnalyticsProperty._id, newAnalyticsProperty.displayName, newAnalyticsProperty._id),
        ctaButton: {
          label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Use new property', 'google-site-kit'),
          onClick: updateToNewAnalyticsConfig,
          inProgress: isDoingSubmitChanges,
          dismissOnClick: true,
          dismissOptions: {
            expiresInSeconds: 1 // Expire the dismissal almost instantly so that the notification can be shown again if there is another mismatch in the future.
          }
        },
        dismissButton: {
          label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Keep existing property', 'google-site-kit'),
          onClick: updateGoogleTagConfig,
          dismissOptions: {
            expiresInSeconds: 1 // Expire the dismissal almost instantly so that the notification can be shown again if there is another mismatch in the future.
          }
        }
      })
    });
  }
  if (newGoogleTagID) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(Notification, {
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_googlesitekit_notifications_components_layout_BannerNotification__WEBPACK_IMPORTED_MODULE_7__["default"], {
        notificationID: id,
        type: _js_googlesitekit_notifications_components_layout_BannerNotification__WEBPACK_IMPORTED_MODULE_7__.TYPES.WARNING,
        title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Your Google tag configuration has changed', 'google-site-kit'),
        description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: 1: Currently set Google Tag ID. 2: Newly linked Google Tag ID. 3: Current GA4 property name. 4: Current GA4 property ID. */
        (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('The Google tag for your Google Analytics configuration has changed from %1$s to %2$s. To keep using your current Google Analytics property "%3$s (%4$s)", you need to configure Site Kit to place the new Google tag %2$s instead.', 'google-site-kit'), currentAnalyticsConfig.googleTagID, newGoogleTagID, currentAnalyticsProperty.displayName, currentAnalyticsProperty._id),
        ctaButton: {
          label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: Newly linked Google Tag ID. */
          (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Update Google tag to %s', 'google-site-kit'), newGoogleTagID),
          onClick: updateGoogleTagConfig,
          dismissOnClick: true,
          dismissOptions: {
            expiresInSeconds: 1 // Expire the dismissal almost instantly so that the notification can be shown again if there is another mismatch in the future.
          }
        }
      })
    });
  }
}

/***/ }),

/***/ "./js/modules/analytics-4/components/notifications/WebDataStreamNotAvailableNotification.js":
/*!**************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/notifications/WebDataStreamNotAvailableNotification.js ***!
  \**************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ WebDataStreamNotAvailableNotification)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_notifications_components_layout_BannerNotification__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/notifications/components/layout/BannerNotification */ "./js/googlesitekit/notifications/components/layout/BannerNotification.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_googlesitekit_datastore_location_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/googlesitekit/datastore/location/constants */ "./js/googlesitekit/datastore/location/constants.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * WebDataStreamNotAvailableNotification component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */








function WebDataStreamNotAvailableNotification({
  id,
  Notification
}) {
  const measurementID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getMeasurementID());
  const analyticsSettingsEditURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_SITE).getModuleSettingsEditURL(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_4__.MODULE_SLUG_ANALYTICS_4));
  const {
    setIsWebDataStreamUnavailable
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4);
  function resetWebDataStreamAvailability() {
    // Reset the web data stream availability by setting its value to FALSE.
    // This means that the corresponding transient will be deleted on backend.
    setIsWebDataStreamUnavailable(false);
  }
  const isNavigatingToSettingsEditURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_location_constants__WEBPACK_IMPORTED_MODULE_7__.CORE_LOCATION).isNavigatingTo(analyticsSettingsEditURL));
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(Notification, {
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_8__.jsx)(_js_googlesitekit_notifications_components_layout_BannerNotification__WEBPACK_IMPORTED_MODULE_2__["default"], {
      notificationID: id,
      type: _js_googlesitekit_notifications_components_layout_BannerNotification__WEBPACK_IMPORTED_MODULE_2__.TYPES.WARNING,
      title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Your Analytics configuration has changed', 'google-site-kit'),
      description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %1$s: Google Analytics Measurement ID. */
      (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('The previously selected web data stream with measurement ID %1$s is no longer available. Please select a new web data stream to continue collecting data with Google Analytics.', 'google-site-kit'), measurementID),
      ctaButton: {
        label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Update Analytics settings', 'google-site-kit'),
        href: analyticsSettingsEditURL,
        disabled: isNavigatingToSettingsEditURL,
        onClick: resetWebDataStreamAvailability
      },
      dismissButton: {
        label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Maybe later', 'google-site-kit'),
        onClick: resetWebDataStreamAvailability,
        dismissOptions: {
          expiresInSeconds: _js_util__WEBPACK_IMPORTED_MODULE_6__.MINUTE_IN_SECONDS * 55
        }
      }
    })
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/notifications/index.js":
/*!******************************************************************!*\
  !*** ./js/modules/analytics-4/components/notifications/index.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   EnhancedConversionsNotification: () => (/* reexport safe */ _EnhancedConversionsNotification__WEBPACK_IMPORTED_MODULE_0__["default"]),
/* harmony export */   GoogleTagIDMismatchNotification: () => (/* reexport safe */ _GoogleTagIDMismatchNotification__WEBPACK_IMPORTED_MODULE_1__["default"]),
/* harmony export */   WebDataStreamNotAvailableNotification: () => (/* reexport safe */ _WebDataStreamNotAvailableNotification__WEBPACK_IMPORTED_MODULE_2__["default"])
/* harmony export */ });
/* harmony import */ var _EnhancedConversionsNotification__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./EnhancedConversionsNotification */ "./js/modules/analytics-4/components/notifications/EnhancedConversionsNotification.js");
/* harmony import */ var _GoogleTagIDMismatchNotification__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./GoogleTagIDMismatchNotification */ "./js/modules/analytics-4/components/notifications/GoogleTagIDMismatchNotification.js");
/* harmony import */ var _WebDataStreamNotAvailableNotification__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./WebDataStreamNotAvailableNotification */ "./js/modules/analytics-4/components/notifications/WebDataStreamNotAvailableNotification.js");
/**
 * Analytics Notification components.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */





/***/ }),

/***/ "./js/modules/analytics-4/components/settings/AnalyticsSettingsNotice.js":
/*!*******************************************************************************!*\
  !*** ./js/modules/analytics-4/components/settings/AnalyticsSettingsNotice.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ AnalyticsSettingsNotice)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_components_Notice__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/Notice */ "./js/components/Notice/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Analytics 4 Settings Notice component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */





function AnalyticsSettingsNotice({
  hasModuleAccess
}) {
  const module = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_MODULES).getModule(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__.MODULE_SLUG_ANALYTICS_4));
  const formattedOwnerName = module?.owner?.login ? `<strong>${module.owner.login}</strong>` : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Another admin', 'google-site-kit');
  if (!hasModuleAccess) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_Notice__WEBPACK_IMPORTED_MODULE_4__["default"], {
      type: _js_components_Notice__WEBPACK_IMPORTED_MODULE_4__["default"].TYPES.WARNING,
      className: "googlesitekit-analytics-settings-notice",
      description: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_6__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: module owner's name */
      (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('%s configured Analytics and you don’t have access to its configured property. Contact them to share access or change the configured property.', 'google-site-kit'), formattedOwnerName), {
        strong: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("strong", {})
      })
    });
  }
  return null;
}
AnalyticsSettingsNotice.propTypes = {
  hasModuleAccess: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().bool)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/settings/EnhancedConversionsSettingsNotice.js":
/*!*****************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/settings/EnhancedConversionsSettingsNotice.js ***!
  \*****************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ EnhancedConversionsSettingsNotice)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_14__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_hooks_useInView__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/hooks/useInView */ "./js/hooks/useInView.js");
/* harmony import */ var _js_googlesitekit_notifications_hooks_useNotificationEvents__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/notifications/hooks/useNotificationEvents */ "./js/googlesitekit/notifications/hooks/useNotificationEvents.js");
/* harmony import */ var _js_util_escape_uri__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util/escape-uri */ "./js/util/escape-uri.ts");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_components_notifications_EnhancedConversionsNotification__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/modules/analytics-4/components/notifications/EnhancedConversionsNotification */ "./js/modules/analytics-4/components/notifications/EnhancedConversionsNotification.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_notifications_components_common_LearnMoreLink__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/googlesitekit/notifications/components/common/LearnMoreLink */ "./js/googlesitekit/notifications/components/common/LearnMoreLink.js");
/* harmony import */ var _js_components_Notice__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/components/Notice */ "./js/components/Notice/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Analytics EnhancedConversionsSettingsNotice component.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */











function EnhancedConversionsSettingsNotice({
  type = _js_components_Notice__WEBPACK_IMPORTED_MODULE_10__["default"].TYPES.INFO
}) {
  const id = _js_modules_analytics_4_components_notifications_EnhancedConversionsNotification__WEBPACK_IMPORTED_MODULE_7__.ENHANCED_CONVERSIONS_NOTIFICATION_ANALYTICS;
  const inView = (0,_js_hooks_useInView__WEBPACK_IMPORTED_MODULE_2__.useInView)();
  const trackEvents = (0,_js_googlesitekit_notifications_hooks_useNotificationEvents__WEBPACK_IMPORTED_MODULE_3__["default"])(id);
  const [isViewedOnce, setIsViewedOnce] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_12__.useState)(false);
  const documentationURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_SITE).getDocumentationLinkURL('enhanced-conversions-analytics'));
  const ctaURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    const {
      getAccountID,
      getPropertyID,
      getServiceURL
    } = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4);
    const accountID = getAccountID();
    const propertyID = getPropertyID();
    return getServiceURL({
      path: (0,_js_util_escape_uri__WEBPACK_IMPORTED_MODULE_4__.escapeURI)`/a${accountID}p${propertyID}/admin/datapolicies/datacollection`
    });
  });
  const isDismissed = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).isItemDismissed(id));
  const {
    dismissItem
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER);
  const handleCTAClick = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_12__.useCallback)(async () => {
    // Dismiss the notice when the CTA is clicked.
    await dismissItem(id);
    trackEvents.confirm();
  }, [dismissItem, id, trackEvents]);
  const handleDismiss = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_12__.useCallback)(async () => {
    await dismissItem(id);
    trackEvents.dismiss();
  }, [dismissItem, id, trackEvents]);

  // Track view event when notice comes into view.
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_12__.useEffect)(() => {
    if (!isViewedOnce && inView) {
      trackEvents.view();
      setIsViewedOnce(true);
    }
  }, [inView, trackEvents, isViewedOnce]);
  if (isDismissed) {
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_Notice__WEBPACK_IMPORTED_MODULE_10__["default"], {
    type: type,
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Boost your Analytics data with more metrics about your visitors', 'google-site-kit'),
    description: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_13__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Site Kit now supports user-provided data collection, a free feature which helps you get a more complete and reliable count of your sales and leads from your website, even when people switch devices. To activate, turn on the setting for collecting user data in your Analytics account. <a />', 'google-site-kit'), {
      a: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_googlesitekit_notifications_components_common_LearnMoreLink__WEBPACK_IMPORTED_MODULE_9__["default"], {
        id: id,
        label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Learn more', 'google-site-kit'),
        url: documentationURL
      })
    }),
    dismissButton: {
      label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No thanks', 'google-site-kit'),
      onClick: handleDismiss
    },
    ctaButton: {
      label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Go to Analytics', 'google-site-kit'),
      href: ctaURL,
      onClick: handleCTAClick,
      external: true,
      hideExternalIndicator: true
    }
  });
}
EnhancedConversionsSettingsNotice.propTypes = {
  type: prop_types__WEBPACK_IMPORTED_MODULE_14___default().oneOf(Object.values(_js_components_Notice__WEBPACK_IMPORTED_MODULE_10__["default"].TYPES))
};

/***/ }),

/***/ "./js/modules/analytics-4/components/settings/OptionalSettingsView.js":
/*!****************************************************************************!*\
  !*** ./js/modules/analytics-4/components/settings/OptionalSettingsView.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ OptionalSettingsView)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_components_DisplaySetting__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/components/DisplaySetting */ "./js/components/DisplaySetting.js");
/* harmony import */ var _js_modules_analytics_4_components_common_TrackingExclusionSwitches__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common/TrackingExclusionSwitches */ "./js/modules/analytics-4/components/common/TrackingExclusionSwitches.js");
/* harmony import */ var _js_components_Typography__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/Typography */ "./js/components/Typography/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Optional Settings View component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */






function OptionalSettingsView() {
  const useSnippet = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getUseSnippet());
  const adsConversionIDMigratedAtMs = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getAdsConversionIDMigratedAtMs());
  const trackingDisabled = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getTrackingDisabled() || []);
  const adsConversionID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getAdsConversionID());
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_7__.Fragment, {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
      className: "googlesitekit-settings-module__meta-items",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
        className: "googlesitekit-settings-module__meta-item",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_5__["default"], {
          as: "h5",
          size: "medium",
          type: "label",
          className: "googlesitekit-settings-module__meta-item-type",
          children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Excluded from Analytics', 'google-site-kit')
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("p", {
          className: "googlesitekit-settings-module__meta-item-data",
          children: [!!trackingDisabled.length && trackingDisabled.map(exclusion => _js_modules_analytics_4_components_common_TrackingExclusionSwitches__WEBPACK_IMPORTED_MODULE_4__.trackingExclusionLabels[exclusion]).join((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__._x)(', ', 'list separator', 'google-site-kit')), !trackingDisabled.length && (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Analytics is currently enabled for all visitors', 'google-site-kit')]
        })]
      })
    }), useSnippet && !adsConversionIDMigratedAtMs && !!adsConversionID && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)("div", {
      className: "googlesitekit-settings-module__meta-items",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("div", {
        className: "googlesitekit-settings-module__meta-item",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_5__["default"], {
          as: "h5",
          size: "medium",
          type: "label",
          className: "googlesitekit-settings-module__meta-item-type",
          children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Ads Conversion ID', 'google-site-kit')
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxs)("p", {
          className: "googlesitekit-settings-module__meta-item-data",
          children: [!!adsConversionID && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_js_components_DisplaySetting__WEBPACK_IMPORTED_MODULE_3__["default"], {
            value: adsConversionID
          }), !adsConversionID && (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('None', 'google-site-kit')]
        })]
      })
    })]
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/settings/PropertyOrWebDataStreamNotAvailableError.js":
/*!************************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/settings/PropertyOrWebDataStreamNotAvailableError.js ***!
  \************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ PropertyOrWebDataStreamNotAvailableError)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_6__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/validation */ "./js/modules/analytics-4/utils/validation.js");
/* harmony import */ var _js_components_ErrorNotice__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/ErrorNotice */ "./js/components/ErrorNotice.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * PropertyOrWebDataStreamNotAvailableError component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */





function PropertyOrWebDataStreamNotAvailableError(props) {
  const {
    hasModuleAccess,
    isDisabled
  } = props;
  const accountID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getAccountID());
  const propertyID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getPropertyID());
  const measurementID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getMeasurementID());
  const properties = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => hasModuleAccess && !isDisabled ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getPropertySummaries(accountID) : []);
  const finishedSelectingAccount = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasFinishedSelectingAccount());
  const webDataStreams = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => (0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_3__.isValidPropertyID)(propertyID) && hasModuleAccess ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getWebDataStreams(propertyID) : []);
  const getWebDataStreamsError = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getErrorForSelector('getWebDataStreams', [propertyID]));
  const getPropertiesError = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getErrorForSelector('getAccountSummaries', []));
  if (!hasModuleAccess || isDisabled || properties === undefined || webDataStreams === undefined || !(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_3__.isValidPropertyID)(propertyID) || finishedSelectingAccount === false) {
    return null;
  }
  const propertyAvailable = properties.some(({
    _id
  }) => _id === propertyID);
  if (propertyAvailable && measurementID && !getWebDataStreamsError && !webDataStreams.some(({
    webStreamData
  }) =>
  // eslint-disable-next-line sitekit/acronym-case
  webStreamData.measurementId === measurementID)) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_ErrorNotice__WEBPACK_IMPORTED_MODULE_4__["default"], {
      message: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: 1: Google Analytics Measurement ID. */
      (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('The previously selected web data stream with measurement ID %1$s is no longer available. Please select a new web data stream to continue collecting data with Google Analytics.', 'google-site-kit'), measurementID),
      skipRetryMessage: true
    });
  }
  if (!propertyAvailable && !getPropertiesError) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_ErrorNotice__WEBPACK_IMPORTED_MODULE_4__["default"], {
      message: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: 1: Google Analytics Property ID. */
      (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('The previously selected property with ID %1$s is no longer available. Please select a new property to continue collecting data with Google Analytics.', 'google-site-kit'), propertyID),
      skipRetryMessage: true
    });
  }
  return null;
}
PropertyOrWebDataStreamNotAvailableError.propTypes = {
  hasModuleAccess: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().bool),
  isDisabled: (prop_types__WEBPACK_IMPORTED_MODULE_6___default().bool)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/settings/SettingsControls.js":
/*!************************************************************************!*\
  !*** ./js/modules/analytics-4/components/settings/SettingsControls.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SettingsControls)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common */ "./js/modules/analytics-4/components/common/index.js");
/* harmony import */ var _SettingsUseSnippetSwitch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./SettingsUseSnippetSwitch */ "./js/modules/analytics-4/components/settings/SettingsUseSnippetSwitch.js");
/* harmony import */ var _js_components_StoreErrorNotices__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/StoreErrorNotices */ "./js/components/StoreErrorNotices.js");
/* harmony import */ var _AnalyticsSettingsNotice__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./AnalyticsSettingsNotice */ "./js/modules/analytics-4/components/settings/AnalyticsSettingsNotice.js");
/* harmony import */ var _PropertyOrWebDataStreamNotAvailableError__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./PropertyOrWebDataStreamNotAvailableError */ "./js/modules/analytics-4/components/settings/PropertyOrWebDataStreamNotAvailableError.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Analytics 4 Settings controls.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */








function SettingsControls(props) {
  const {
    hasModuleAccess
  } = props;
  const propertyID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getPropertyID());
  const webDataStreamID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getWebDataStreamID());
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)("div", {
    className: "googlesitekit-settings-module__fields-group",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_js_components_StoreErrorNotices__WEBPACK_IMPORTED_MODULE_4__["default"], {
      moduleSlug: "analytics-4",
      storeName: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_PropertyOrWebDataStreamNotAvailableError__WEBPACK_IMPORTED_MODULE_6__["default"], {
      hasModuleAccess: hasModuleAccess,
      isDisabled: !propertyID
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)("div", {
      className: "googlesitekit-setup-module__inputs",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_2__.AccountSelect, {
        hasModuleAccess: hasModuleAccess
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_2__.PropertySelect, {
        hasModuleAccess: hasModuleAccess,
        isDisabled: !propertyID
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_2__.WebDataStreamSelect, {
        hasModuleAccess: hasModuleAccess,
        isDisabled: !propertyID
      })]
    }), webDataStreamID === _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.WEBDATASTREAM_CREATE && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", {
      className: "googlesitekit-setup-module__inputs googlesitekit-setup-module__inputs--multiline",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_2__.WebDataStreamNameInput, {})
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_AnalyticsSettingsNotice__WEBPACK_IMPORTED_MODULE_5__["default"], {
      hasModuleAccess: hasModuleAccess,
      className: "googlesitekit-margin-top-0"
    }), propertyID && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", {
      className: "googlesitekit-settings-module__meta-item",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_SettingsUseSnippetSwitch__WEBPACK_IMPORTED_MODULE_3__["default"], {})
    })]
  });
}
SettingsControls.propTypes = {
  hasModuleAccess: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/settings/SettingsEdit.js":
/*!********************************************************************!*\
  !*** ./js/modules/analytics-4/components/settings/SettingsEdit.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SettingsEdit)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_hooks_useFeature__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/hooks/useFeature */ "./js/hooks/useFeature.js");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_hooks_useExistingTagEffect__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/modules/analytics-4/hooks/useExistingTagEffect */ "./js/modules/analytics-4/hooks/useExistingTagEffect.js");
/* harmony import */ var _SettingsForm__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./SettingsForm */ "./js/modules/analytics-4/components/settings/SettingsForm.js");
/* harmony import */ var _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common */ "./js/modules/analytics-4/components/common/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Analytics 4 Settings Edit component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */











function SettingsEdit() {
  const setupFlowRefreshEnabled = (0,_js_hooks_useFeature__WEBPACK_IMPORTED_MODULE_2__.useFeature)('setupFlowRefresh');
  const accounts = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getAccountSummaries()) || [];
  const accountID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getAccountID());
  const isDoingSubmitChanges = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).isDoingSubmitChanges());
  const hasResolvedAccounts = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).hasFinishedResolution('getAccountSummaries'));
  const usingProxy = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_SITE).isUsingProxy());
  const hasModuleAccess = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    const {
      hasModuleOwnershipOrAccess,
      getErrorForAction
    } = select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.CORE_MODULES);
    const hasAccess = hasModuleOwnershipOrAccess(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4);
    if (hasAccess) {
      return true;
    }
    const checkAccessError = getErrorForAction('checkModuleAccess', [_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4]);

    // Return early if request is not completed yet.
    if (undefined === hasAccess && !checkAccessError) {
      return undefined;
    }

    // Return false if GA4 is connected and access is concretely missing.
    if (false === hasAccess) {
      return false;
    }
    if ('module_not_connected' === checkAccessError?.code) {
      return true;
    }

    // For any other error or case, the user does not have access to GA4.
    return false;
  });
  (0,_js_modules_analytics_4_hooks_useExistingTagEffect__WEBPACK_IMPORTED_MODULE_8__["default"])();
  const isCreateAccount = _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.ACCOUNT_CREATE === accountID;
  let viewComponent;
  // Here we also check for `hasResolvedAccounts` to prevent showing a different case below
  // when the component initially loads and has yet to start fetching accounts.
  if (isDoingSubmitChanges || !hasResolvedAccounts || hasModuleAccess === undefined) {
    viewComponent = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_3__.ProgressBar, {});
  } else if (!accounts.length || isCreateAccount) {
    viewComponent = usingProxy ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_10__.AccountCreate, {}) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_10__.AccountCreateLegacy, {});
  } else {
    viewComponent = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_SettingsForm__WEBPACK_IMPORTED_MODULE_9__["default"], {
      hasModuleAccess: hasModuleAccess
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("div", {
    className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-setup-module googlesitekit-setup-module--analytics', {
      'googlesitekit-feature--setupFlowRefresh': setupFlowRefreshEnabled
    }),
    children: viewComponent
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/settings/SettingsEnhancedMeasurementSwitch.js":
/*!*****************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/settings/SettingsEnhancedMeasurementSwitch.js ***!
  \*****************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SettingsEnhancedMeasurementSwitch)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_8__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_components_common_EnhancedMeasurementSwitch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common/EnhancedMeasurementSwitch */ "./js/modules/analytics-4/components/common/EnhancedMeasurementSwitch.js");
/* harmony import */ var _js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/validation */ "./js/modules/analytics-4/utils/validation.js");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * SettingsEnhancedMeasurementSwitch component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */







function SettingsEnhancedMeasurementSwitch({
  hasModuleAccess
}) {
  const isEnhancedMeasurementEnabled = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_5__["default"])(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.ENHANCED_MEASUREMENT_FORM, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.ENHANCED_MEASUREMENT_ENABLED);
  const propertyID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getPropertyID());
  const webDataStreamID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getWebDataStreamID());
  const isLoadingPropertySummaries = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).isLoadingPropertySummaries();
  });
  const isLoadingWebDataStreams = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).isLoadingWebDataStreams({
      hasModuleAccess
    });
  });
  const isEnhancedMeasurementStreamEnabled = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    if (isLoadingPropertySummaries || isLoadingWebDataStreams) {
      return undefined;
    }
    if (!(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_4__.isValidPropertyID)(propertyID) || !(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_4__.isValidWebDataStreamID)(webDataStreamID)) {
      return null;
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).isEnhancedMeasurementStreamEnabled(propertyID, webDataStreamID);
  });
  const isEnhancedMeasurementAlreadyEnabled = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    if (isLoadingPropertySummaries || isLoadingWebDataStreams || isEnhancedMeasurementStreamEnabled === undefined) {
      return undefined;
    }
    if (!(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_4__.isValidPropertyID)(propertyID) || !(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_4__.isValidWebDataStreamID)(webDataStreamID)) {
      return null;
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).isEnhancedMeasurementStreamAlreadyEnabled(propertyID, webDataStreamID);
  });
  const isLoading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    if (!(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_4__.isValidPropertySelection)(propertyID) || !(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_4__.isValidWebDataStreamSelection)(webDataStreamID) || isLoadingPropertySummaries || isLoadingWebDataStreams) {
      return true;
    }
    if (propertyID === _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.PROPERTY_CREATE || webDataStreamID === _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.WEBDATASTREAM_CREATE) {
      return false;
    }
    return !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasFinishedResolution('getEnhancedMeasurementSettings', [propertyID, webDataStreamID]) || !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasFinishedResolution('isEnhancedMeasurementStreamAlreadyEnabled', [propertyID, webDataStreamID]);
  });
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_FORMS);
  const {
    setEnhancedMeasurementStreamEnabled
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4);
  const initialValues = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_7__.useRef)({
    isEnhancedMeasurementEnabled,
    propertyID,
    webDataStreamID
  });
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_7__.useEffect)(() => {
    if (initialValues.current.isEnhancedMeasurementEnabled !== undefined && initialValues.current.webDataStreamID === webDataStreamID && initialValues.current.propertyID === propertyID) {
      return;
    }
    if (isEnhancedMeasurementStreamEnabled === undefined || !(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_4__.isValidPropertySelection)(propertyID) || !(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_4__.isValidWebDataStreamSelection)(webDataStreamID)) {
      return;
    }

    // Here we update the form value in order to toggle the switch in `EnhancedMeasurementSwitch`,
    if (propertyID === _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.PROPERTY_CREATE || webDataStreamID === _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.WEBDATASTREAM_CREATE) {
      setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.ENHANCED_MEASUREMENT_FORM, {
        [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.ENHANCED_MEASUREMENT_ENABLED]: true
      });
    } else {
      setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.ENHANCED_MEASUREMENT_FORM, {
        [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.ENHANCED_MEASUREMENT_ENABLED]: isEnhancedMeasurementStreamEnabled
      });
    }
  }, [isEnhancedMeasurementStreamEnabled, propertyID, setValues, webDataStreamID]);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_js_modules_analytics_4_components_common_EnhancedMeasurementSwitch__WEBPACK_IMPORTED_MODULE_3__["default"], {
    disabled: !hasModuleAccess,
    loading: isLoading,
    isEnhancedMeasurementAlreadyEnabled: isEnhancedMeasurementAlreadyEnabled,
    onClick: () => {
      if (!(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_4__.isValidPropertyID)(propertyID) || !(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_4__.isValidWebDataStreamID)(webDataStreamID)) {
        return;
      }

      // Here we update the enhanced measurement `streamEnabled` setting to ensure `validateCanSubmitChanges()` can detect
      // that the setting has changed via its call to `haveEnhancedMeasurementSettingsChanged()`.
      setEnhancedMeasurementStreamEnabled({
        propertyID,
        webDataStreamID,
        enabled: !isEnhancedMeasurementStreamEnabled
      });
    },
    showTick: true
  });
}
SettingsEnhancedMeasurementSwitch.propTypes = {
  hasModuleAccess: (prop_types__WEBPACK_IMPORTED_MODULE_8___default().bool)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/settings/SettingsForm.js":
/*!********************************************************************!*\
  !*** ./js/modules/analytics-4/components/settings/SettingsForm.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SettingsForm)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_20__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common */ "./js/modules/analytics-4/components/common/index.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_components_Notice_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/Notice/constants */ "./js/components/Notice/constants.js");
/* harmony import */ var _SettingsControls__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./SettingsControls */ "./js/modules/analytics-4/components/settings/SettingsControls.js");
/* harmony import */ var _js_components_conversion_tracking_ConversionTrackingToggle__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/components/conversion-tracking/ConversionTrackingToggle */ "./js/components/conversion-tracking/ConversionTrackingToggle.js");
/* harmony import */ var _EnhancedConversionsSettingsNotice__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./EnhancedConversionsSettingsNotice */ "./js/modules/analytics-4/components/settings/EnhancedConversionsSettingsNotice.js");
/* harmony import */ var _js_components_settings_EntityOwnershipChangeNotice__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/components/settings/EntityOwnershipChangeNotice */ "./js/components/settings/EntityOwnershipChangeNotice.js");
/* harmony import */ var _js_components_google_tag_gateway_GoogleTagGatewayToggle__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/components/google-tag-gateway/GoogleTagGatewayToggle */ "./js/components/google-tag-gateway/GoogleTagGatewayToggle.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_components_settings_SettingsGroup__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/js/components/settings/SettingsGroup */ "./js/components/settings/SettingsGroup.js");
/* harmony import */ var _js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/validation */ "./js/modules/analytics-4/utils/validation.js");
/* harmony import */ var _js_hooks_useFeature__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/js/hooks/useFeature */ "./js/hooks/useFeature.js");
/* harmony import */ var _SettingsEnhancedMeasurementSwitch__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./SettingsEnhancedMeasurementSwitch */ "./js/modules/analytics-4/components/settings/SettingsEnhancedMeasurementSwitch.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Analytics 4 Settings form.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */

















function SettingsForm({
  hasModuleAccess
}) {
  const gtgEnabled = (0,_js_hooks_useFeature__WEBPACK_IMPORTED_MODULE_15__.useFeature)('googleTagGateway');
  const gtagUserDataEnabled = (0,_js_hooks_useFeature__WEBPACK_IMPORTED_MODULE_15__.useFeature)('gtagUserData');
  const accountID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getAccountID());
  const conversionTrackingDocumentationURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_SITE).getDocumentationLinkURL('plugin-conversion-tracking'));
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_18__.Fragment, {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_SettingsControls__WEBPACK_IMPORTED_MODULE_7__["default"], {
      hasModuleAccess: hasModuleAccess
    }), (0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_14__.isValidAccountID)(accountID) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_2__.TrackingExclusionSwitches, {}), hasModuleAccess && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_components_settings_EntityOwnershipChangeNotice__WEBPACK_IMPORTED_MODULE_10__["default"], {
      slug: [_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsxs)(_js_components_settings_SettingsGroup__WEBPACK_IMPORTED_MODULE_13__["default"], {
      title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Improve your measurement', 'google-site-kit'),
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_SettingsEnhancedMeasurementSwitch__WEBPACK_IMPORTED_MODULE_16__["default"], {
        hasModuleAccess: hasModuleAccess
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_components_conversion_tracking_ConversionTrackingToggle__WEBPACK_IMPORTED_MODULE_8__["default"], {
        children: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_19__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('To track the performance of your campaigns, Site Kit will enable plugin conversion tracking. <a>Learn more</a>', 'google-site-kit'), {
          a: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_12__["default"], {
            href: conversionTrackingDocumentationURL,
            "aria-label": (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Learn more about conversion tracking', 'google-site-kit'),
            external: true
          })
        })
      }), gtgEnabled && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_js_components_google_tag_gateway_GoogleTagGatewayToggle__WEBPACK_IMPORTED_MODULE_11__["default"], {}), gtagUserDataEnabled && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_17__.jsx)(_EnhancedConversionsSettingsNotice__WEBPACK_IMPORTED_MODULE_9__["default"], {
        type: _js_components_Notice_constants__WEBPACK_IMPORTED_MODULE_6__.TYPES.INFO_ALT
      })]
    })]
  });
}
SettingsForm.propTypes = {
  hasModuleAccess: (prop_types__WEBPACK_IMPORTED_MODULE_20___default().bool)
};

/***/ }),

/***/ "./js/modules/analytics-4/components/settings/SettingsUseSnippetSwitch.js":
/*!********************************************************************************!*\
  !*** ./js/modules/analytics-4/components/settings/SettingsUseSnippetSwitch.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SettingsUseSnippetSwitch)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_components_Typography_P__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/Typography/P */ "./js/components/Typography/P.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_components_common_UseSnippetSwitch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common/UseSnippetSwitch */ "./js/modules/analytics-4/components/common/UseSnippetSwitch.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * GA4 Settings Use Snippet Switch component.
 *
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */





function SettingsUseSnippetSwitch() {
  const useSnippet = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getUseSnippet());
  const existingTag = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getExistingTag());
  const measurementID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getMeasurementID());
  let description;
  if (existingTag) {
    description = existingTag === measurementID ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__.Fragment, {
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_2__["default"], {
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: existing tag ID */
        (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('A tag %s for the selected property already exists on the site', 'google-site-kit'), existingTag)
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_2__["default"], {
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Consider removing the existing tag to avoid loading both tags on your site', 'google-site-kit')
      })]
    }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__.Fragment, {
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_2__["default"], {
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: existing tag ID */
        (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('An existing tag %s was found on the page', 'google-site-kit'), existingTag)
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_2__["default"], {
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('If you prefer to collect data using that existing tag, please select the corresponding account and property above', 'google-site-kit')
      })]
    });
  } else {
    description = useSnippet ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_2__["default"], {
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Site Kit will add the code automatically', 'google-site-kit')
    }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_2__["default"], {
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Site Kit will not add the code to your site', 'google-site-kit')
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_modules_analytics_4_components_common_UseSnippetSwitch__WEBPACK_IMPORTED_MODULE_4__["default"], {
    description: description
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/settings/SettingsView.js":
/*!********************************************************************!*\
  !*** ./js/modules/analytics-4/components/settings/SettingsView.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SettingsView)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _OptionalSettingsView__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./OptionalSettingsView */ "./js/modules/analytics-4/components/settings/OptionalSettingsView.js");
/* harmony import */ var _js_components_StoreErrorNotices__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/StoreErrorNotices */ "./js/components/StoreErrorNotices.js");
/* harmony import */ var _js_components_DisplaySetting__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/DisplaySetting */ "./js/components/DisplaySetting.js");
/* harmony import */ var _EnhancedConversionsSettingsNotice__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./EnhancedConversionsSettingsNotice */ "./js/modules/analytics-4/components/settings/EnhancedConversionsSettingsNotice.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_components_VisuallyHidden__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/components/VisuallyHidden */ "./js/components/VisuallyHidden.js");
/* harmony import */ var _js_util_escape_uri__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/util/escape-uri */ "./js/util/escape-uri.ts");
/* harmony import */ var _js_hooks_useFeature__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/hooks/useFeature */ "./js/hooks/useFeature.js");
/* harmony import */ var _js_components_settings_SettingsStatuses__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/components/settings/SettingsStatuses */ "./js/components/settings/SettingsStatuses.js");
/* harmony import */ var _js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/validation */ "./js/modules/analytics-4/utils/validation.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_components_Typography__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/js/components/Typography */ "./js/components/Typography/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Analytics Settings View component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */















function SettingsView() {
  const gtgEnabled = (0,_js_hooks_useFeature__WEBPACK_IMPORTED_MODULE_10__.useFeature)('googleTagGateway');
  const gtagUserDataEnabled = (0,_js_hooks_useFeature__WEBPACK_IMPORTED_MODULE_10__.useFeature)('gtagUserData');
  const accountID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getAccountID());
  const propertyID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getPropertyID());
  const measurementID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getMeasurementID());
  const googleTagID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getGoogleTagID());
  const useSnippet = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getUseSnippet());
  const editAccountSettingsURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getServiceURL({
    path: (0,_js_util_escape_uri__WEBPACK_IMPORTED_MODULE_9__.escapeURI)`/a${accountID}p${propertyID}/admin/account/settings`
  }));
  const editDataStreamSettingsURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getServiceEntityAccessURL());
  const webDataStreamID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getWebDataStreamID());
  const isEnhancedMeasurementStreamEnabled = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    if (!(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_12__.isValidPropertyID)(propertyID) || !(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_12__.isValidWebDataStreamID)(webDataStreamID)) {
      return null;
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).isEnhancedMeasurementStreamEnabled(propertyID, webDataStreamID);
  });
  const isConversionTrackingEnabled = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_13__.CORE_SITE).isConversionTrackingEnabled());
  const isGTGEnabled = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    if (!gtgEnabled) {
      return false;
    }
    const {
      isGoogleTagGatewayEnabled,
      isGTGHealthy,
      isScriptAccessEnabled
    } = select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_13__.CORE_SITE);
    return isGoogleTagGatewayEnabled() && isGTGHealthy() && isScriptAccessEnabled();
  });
  if (!propertyID || propertyID === _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.PROPERTY_CREATE) {
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsxs)("div", {
    className: "googlesitekit-setup-module googlesitekit-setup-module--analytics",
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)(_js_components_StoreErrorNotices__WEBPACK_IMPORTED_MODULE_4__["default"], {
      moduleSlug: "analytics-4",
      storeName: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsxs)("div", {
      className: "googlesitekit-settings-module__meta-items",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsxs)("div", {
        className: "googlesitekit-settings-module__meta-item",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_14__["default"], {
          as: "h5",
          size: "medium",
          type: "label",
          className: "googlesitekit-settings-module__meta-item-type",
          children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Account', 'google-site-kit')
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)("p", {
          className: "googlesitekit-settings-module__meta-item-data",
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)(_js_components_DisplaySetting__WEBPACK_IMPORTED_MODULE_5__["default"], {
            value: accountID
          })
        })]
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)("div", {
        className: "googlesitekit-settings-module__meta-item googlesitekit-settings-module__meta-item--data-only",
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)("p", {
          className: "googlesitekit-settings-module__meta-item-data googlesitekit-settings-module__meta-item-data--tiny",
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_7__["default"], {
            href: editAccountSettingsURL,
            external: true,
            children: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_16__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Edit <VisuallyHidden>account </VisuallyHidden>in Analytics', 'google-site-kit'), {
              VisuallyHidden: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)(_js_components_VisuallyHidden__WEBPACK_IMPORTED_MODULE_8__["default"], {})
            })
          })
        })
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsxs)("div", {
      className: "googlesitekit-settings-module__meta-items",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsxs)("div", {
        className: "googlesitekit-settings-module__meta-item",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_14__["default"], {
          as: "h5",
          size: "medium",
          type: "label",
          className: "googlesitekit-settings-module__meta-item-type",
          children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Property', 'google-site-kit')
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)("p", {
          className: "googlesitekit-settings-module__meta-item-data",
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)(_js_components_DisplaySetting__WEBPACK_IMPORTED_MODULE_5__["default"], {
            value: propertyID
          })
        })]
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsxs)("div", {
        className: "googlesitekit-settings-module__meta-item",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_14__["default"], {
          as: "h5",
          size: "medium",
          type: "label",
          className: "googlesitekit-settings-module__meta-item-type",
          children: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_16__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('<VisuallyHidden>Google Analytics</VisuallyHidden> Measurement ID', 'google-site-kit'), {
            VisuallyHidden: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)(_js_components_VisuallyHidden__WEBPACK_IMPORTED_MODULE_8__["default"], {})
          })
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)("p", {
          className: "googlesitekit-settings-module__meta-item-data",
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)(_js_components_DisplaySetting__WEBPACK_IMPORTED_MODULE_5__["default"], {
            value: measurementID
          })
        })]
      }), googleTagID && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsxs)("div", {
        className: "googlesitekit-settings-module__meta-item",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_14__["default"], {
          as: "h5",
          size: "medium",
          type: "label",
          className: "googlesitekit-settings-module__meta-item-type",
          children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Google Tag ID', 'google-site-kit')
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)("p", {
          className: "googlesitekit-settings-module__meta-item-data",
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)(_js_components_DisplaySetting__WEBPACK_IMPORTED_MODULE_5__["default"], {
            value: googleTagID
          })
        })]
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)("div", {
        className: "googlesitekit-settings-module__meta-item googlesitekit-settings-module__meta-item--data-only",
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)("p", {
          className: "googlesitekit-settings-module__meta-item-data googlesitekit-settings-module__meta-item-data--tiny",
          children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_7__["default"], {
            href: editDataStreamSettingsURL,
            external: true,
            children: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_16__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Edit <VisuallyHidden>web data stream </VisuallyHidden>in Analytics', 'google-site-kit'), {
              VisuallyHidden: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)(_js_components_VisuallyHidden__WEBPACK_IMPORTED_MODULE_8__["default"], {})
            })
          })
        })
      })]
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)("div", {
      className: "googlesitekit-settings-module__meta-items",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsxs)("div", {
        className: "googlesitekit-settings-module__meta-item",
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_14__["default"], {
          as: "h5",
          size: "medium",
          type: "label",
          className: "googlesitekit-settings-module__meta-item-type",
          children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Code Snippet', 'google-site-kit')
        }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsxs)("p", {
          className: "googlesitekit-settings-module__meta-item-data",
          children: [useSnippet && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)("span", {
            children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Snippet is inserted', 'google-site-kit')
          }), useSnippet === false && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)("span", {
            children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Snippet is not inserted', 'google-site-kit')
          }), useSnippet === undefined && _js_components_DisplaySetting__WEBPACK_IMPORTED_MODULE_5__.BLANK_SPACE]
        })]
      })
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)(_OptionalSettingsView__WEBPACK_IMPORTED_MODULE_3__["default"], {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)(_js_components_settings_SettingsStatuses__WEBPACK_IMPORTED_MODULE_11__["default"], {
      statuses: [{
        label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Enhanced Measurement', 'google-site-kit'),
        status: isEnhancedMeasurementStreamEnabled
      }, {
        label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Plugin conversion tracking', 'google-site-kit'),
        status: isConversionTrackingEnabled
      }, ...(gtgEnabled ? [{
        label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Google tag gateway for advertisers', 'google-site-kit'),
        status: isGTGEnabled
      }] : [])]
    }), gtagUserDataEnabled && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_15__.jsx)(_EnhancedConversionsSettingsNotice__WEBPACK_IMPORTED_MODULE_6__["default"], {})]
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/settings/index.js":
/*!*************************************************************!*\
  !*** ./js/modules/analytics-4/components/settings/index.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   AnalyticsSettingsNotice: () => (/* reexport safe */ _AnalyticsSettingsNotice__WEBPACK_IMPORTED_MODULE_0__["default"]),
/* harmony export */   EnhancedConversionsSettingsNotice: () => (/* reexport safe */ _EnhancedConversionsSettingsNotice__WEBPACK_IMPORTED_MODULE_1__["default"]),
/* harmony export */   OptionalSettingsView: () => (/* reexport safe */ _OptionalSettingsView__WEBPACK_IMPORTED_MODULE_2__["default"]),
/* harmony export */   PropertyOrWebDataStreamNotAvailableError: () => (/* reexport safe */ _PropertyOrWebDataStreamNotAvailableError__WEBPACK_IMPORTED_MODULE_3__["default"]),
/* harmony export */   SettingsControls: () => (/* reexport safe */ _SettingsControls__WEBPACK_IMPORTED_MODULE_4__["default"]),
/* harmony export */   SettingsEdit: () => (/* reexport safe */ _SettingsEdit__WEBPACK_IMPORTED_MODULE_5__["default"]),
/* harmony export */   SettingsEnhancedMeasurementSwitch: () => (/* reexport safe */ _SettingsEnhancedMeasurementSwitch__WEBPACK_IMPORTED_MODULE_6__["default"]),
/* harmony export */   SettingsForm: () => (/* reexport safe */ _SettingsForm__WEBPACK_IMPORTED_MODULE_7__["default"]),
/* harmony export */   SettingsUseSnippetSwitch: () => (/* reexport safe */ _SettingsUseSnippetSwitch__WEBPACK_IMPORTED_MODULE_8__["default"]),
/* harmony export */   SettingsView: () => (/* reexport safe */ _SettingsView__WEBPACK_IMPORTED_MODULE_9__["default"])
/* harmony export */ });
/* harmony import */ var _AnalyticsSettingsNotice__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AnalyticsSettingsNotice */ "./js/modules/analytics-4/components/settings/AnalyticsSettingsNotice.js");
/* harmony import */ var _EnhancedConversionsSettingsNotice__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./EnhancedConversionsSettingsNotice */ "./js/modules/analytics-4/components/settings/EnhancedConversionsSettingsNotice.js");
/* harmony import */ var _OptionalSettingsView__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./OptionalSettingsView */ "./js/modules/analytics-4/components/settings/OptionalSettingsView.js");
/* harmony import */ var _PropertyOrWebDataStreamNotAvailableError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./PropertyOrWebDataStreamNotAvailableError */ "./js/modules/analytics-4/components/settings/PropertyOrWebDataStreamNotAvailableError.js");
/* harmony import */ var _SettingsControls__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./SettingsControls */ "./js/modules/analytics-4/components/settings/SettingsControls.js");
/* harmony import */ var _SettingsEdit__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./SettingsEdit */ "./js/modules/analytics-4/components/settings/SettingsEdit.js");
/* harmony import */ var _SettingsEnhancedMeasurementSwitch__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SettingsEnhancedMeasurementSwitch */ "./js/modules/analytics-4/components/settings/SettingsEnhancedMeasurementSwitch.js");
/* harmony import */ var _SettingsForm__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./SettingsForm */ "./js/modules/analytics-4/components/settings/SettingsForm.js");
/* harmony import */ var _SettingsUseSnippetSwitch__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./SettingsUseSnippetSwitch */ "./js/modules/analytics-4/components/settings/SettingsUseSnippetSwitch.js");
/* harmony import */ var _SettingsView__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./SettingsView */ "./js/modules/analytics-4/components/settings/SettingsView.js");
/**
 * GA4 settings components.
 *
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */












/***/ }),

/***/ "./js/modules/analytics-4/components/setup/SetupEnhancedMeasurementSwitch.js":
/*!***********************************************************************************!*\
  !*** ./js/modules/analytics-4/components/setup/SetupEnhancedMeasurementSwitch.js ***!
  \***********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SetupEnhancedMeasurementSwitch)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_components_common_EnhancedMeasurementSwitch__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common/EnhancedMeasurementSwitch */ "./js/modules/analytics-4/components/common/EnhancedMeasurementSwitch.js");
/* harmony import */ var _js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/validation */ "./js/modules/analytics-4/utils/validation.js");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * SetupEnhancedMeasurementSwitch component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */







function SetupEnhancedMeasurementSwitch() {
  const accountID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getAccountID());
  const propertyID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getPropertyID());
  const webDataStreamID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getWebDataStreamID());
  const isLoadingPropertySummaries = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).isLoadingPropertySummaries());
  const isLoadingWebDataStreams = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).isLoadingWebDataStreams({
    hasModuleAccess: true
  }));
  const isEnhancedMeasurementAlreadyEnabled = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    if (isLoadingPropertySummaries || isLoadingWebDataStreams) {
      return undefined;
    }
    if (!(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_4__.isValidPropertyID)(propertyID) || !(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_4__.isValidWebDataStreamID)(webDataStreamID)) {
      return null;
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).isEnhancedMeasurementStreamAlreadyEnabled(propertyID, webDataStreamID);
  });
  const isLoading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    if (!(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_4__.isValidPropertySelection)(propertyID) || !(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_4__.isValidWebDataStreamSelection)(webDataStreamID) || isLoadingPropertySummaries || isLoadingWebDataStreams) {
      return true;
    }
    if (propertyID === _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.PROPERTY_CREATE || webDataStreamID === _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.WEBDATASTREAM_CREATE) {
      return false;
    }
    return !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasFinishedResolution('isEnhancedMeasurementStreamAlreadyEnabled', [propertyID, webDataStreamID]);
  });
  const isAutoSubmit = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_5__["default"])(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.FORM_SETUP, 'autoSubmit');
  const isEnhancedMeasurementEnabled = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_5__["default"])(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.ENHANCED_MEASUREMENT_FORM, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.ENHANCED_MEASUREMENT_ENABLED);
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_FORMS);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_7__.useEffect)(() => {
    if (!isAutoSubmit && isEnhancedMeasurementEnabled === undefined) {
      setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.ENHANCED_MEASUREMENT_FORM, {
        [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.ENHANCED_MEASUREMENT_ENABLED]: true
      });
    }
  }, [isAutoSubmit, isEnhancedMeasurementEnabled, setValues]);
  if (!(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_4__.isValidAccountID)(accountID)) {
    return null;
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_js_modules_analytics_4_components_common_EnhancedMeasurementSwitch__WEBPACK_IMPORTED_MODULE_3__["default"], {
    loading: isLoading,
    isEnhancedMeasurementAlreadyEnabled: isEnhancedMeasurementAlreadyEnabled
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/setup/SetupForm.js":
/*!**************************************************************!*\
  !*** ./js/modules/analytics-4/components/setup/SetupForm.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SetupForm)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_23__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @wordpress/url */ "../node_modules/@wordpress/url/build-module/get-query-arg.js");
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @wordpress/url */ "../node_modules/@wordpress/url/build-module/add-query-args.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_location_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/datastore/location/constants */ "./js/googlesitekit/datastore/location/constants.js");
/* harmony import */ var _js_util_errors__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util/errors */ "./js/util/errors.js");
/* harmony import */ var _SetupFormFields__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./SetupFormFields */ "./js/modules/analytics-4/components/setup/SetupFormFields.js");
/* harmony import */ var _js_components_StoreErrorNotices__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/components/StoreErrorNotices */ "./js/components/StoreErrorNotices.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_components_conversion_tracking_SetupPluginConversionTrackingNotice__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/js/components/conversion-tracking/SetupPluginConversionTrackingNotice */ "./js/components/conversion-tracking/SetupPluginConversionTrackingNotice.js");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/* harmony import */ var _js_hooks_useFeature__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/js/hooks/useFeature */ "./js/hooks/useFeature.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_components_Null__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @/js/components/Null */ "./js/components/Null.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Analytics Setup form.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */


















function SetupForm({
  finishSetup
}) {
  const hasEditScope = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER).hasScope(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.EDIT_SCOPE));
  const autoSubmit = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_14__["default"])(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.FORM_SETUP, 'autoSubmit');
  const canSubmitChanges = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).canSubmitChanges());
  const isSaving = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).isDoingSubmitChanges() || select(_js_googlesitekit_datastore_location_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_LOCATION).isNavigating());
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_10__["default"])();
  const setupFlowRefreshEnabled = (0,_js_hooks_useFeature__WEBPACK_IMPORTED_MODULE_15__.useFeature)('setupFlowRefresh');
  const showProgress = (0,_wordpress_url__WEBPACK_IMPORTED_MODULE_19__.getQueryArg)(location.href, 'showProgress');
  const keyMetricsSetupURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    if (!setupFlowRefreshEnabled) {
      return undefined;
    }
    const url = select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_12__.CORE_SITE).getAdminURL('googlesitekit-key-metrics-setup');
    return showProgress ? (0,_wordpress_url__WEBPACK_IMPORTED_MODULE_20__.addQueryArgs)(url, {
      showProgress: 'true'
    }) : url;
  });
  const pluginConversionsDocumentationURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    return select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_12__.CORE_SITE).getDocumentationLinkURL('plugin-conversion-tracking');
  });
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_FORMS);
  const {
    submitChanges
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4);
  const {
    setConversionTrackingEnabled,
    saveConversionTrackingSettings
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_12__.CORE_SITE);
  const isEnhancedMeasurementEnabled = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_14__["default"])(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.ENHANCED_MEASUREMENT_FORM, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.ENHANCED_MEASUREMENT_ENABLED);
  const submitForm = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_21__.useCallback)(async event => {
    event.preventDefault();
    // Disable autoSubmit unconditionally to prevent
    // automatic invocation more than once.
    setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.FORM_SETUP, {
      autoSubmit: false
    });
    const {
      error
    } = await submitChanges();
    if ((0,_js_util_errors__WEBPACK_IMPORTED_MODULE_7__.isPermissionScopeError)(error)) {
      setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.FORM_SETUP, {
        autoSubmit: true
      });
    }
    if (!error) {
      setConversionTrackingEnabled(true);
      await saveConversionTrackingSettings();
      if (isEnhancedMeasurementEnabled === true) {
        await (0,_js_util__WEBPACK_IMPORTED_MODULE_11__.trackEvent)(`${viewContext}_analytics`, 'ga4_setup_enhanced_measurement_enabled');
      }
      finishSetup(keyMetricsSetupURL);
    }
  }, [finishSetup, keyMetricsSetupURL, isEnhancedMeasurementEnabled, setConversionTrackingEnabled, saveConversionTrackingSettings, setValues, submitChanges, viewContext]);

  // If the user lands back on this component with autoSubmit and the edit scope,
  // resubmit the form.
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_21__.useEffect)(() => {
    if (autoSubmit && hasEditScope) {
      submitForm({
        preventDefault: () => {}
      });
    }
  }, [hasEditScope, autoSubmit, submitForm]);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__.jsxs)("form", {
    className: "googlesitekit-analytics-setup__form",
    onSubmit: submitForm,
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__.jsx)(_js_components_StoreErrorNotices__WEBPACK_IMPORTED_MODULE_9__["default"], {
      moduleSlug: "analytics-4",
      storeName: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__.jsx)(_SetupFormFields__WEBPACK_IMPORTED_MODULE_8__["default"], {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__.jsx)(_js_components_conversion_tracking_SetupPluginConversionTrackingNotice__WEBPACK_IMPORTED_MODULE_13__["default"], {
      message: (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_22__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('To track how visitors interact with your site, Site Kit will enable plugin conversion tracking. You can always disable it in settings. <LearnMoreLink />', 'google-site-kit'), {
        LearnMoreLink: setupFlowRefreshEnabled ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_16__["default"], {
          href: pluginConversionsDocumentationURL,
          external: true,
          children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Learn more', 'google-site-kit')
        }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__.jsx)(_js_components_Null__WEBPACK_IMPORTED_MODULE_17__["default"], {})
      })
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__.jsx)("div", {
      className: "googlesitekit-setup-module__action",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_2__.SpinnerButton, {
        disabled: !canSubmitChanges || isSaving,
        isSaving: isSaving,
        children: setupFlowRefreshEnabled ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Set up', 'google-site-kit') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Complete setup', 'google-site-kit')
      })
    })]
  });
}
SetupForm.propTypes = {
  finishSetup: (prop_types__WEBPACK_IMPORTED_MODULE_23___default().func)
};
SetupForm.defaultProps = {
  finishSetup: () => {}
};

/***/ }),

/***/ "./js/modules/analytics-4/components/setup/SetupFormFields.js":
/*!********************************************************************!*\
  !*** ./js/modules/analytics-4/components/setup/SetupFormFields.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SetupFormFields)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/validation */ "./js/modules/analytics-4/utils/validation.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common */ "./js/modules/analytics-4/components/common/index.js");
/* harmony import */ var _SetupEnhancedMeasurementSwitch__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./SetupEnhancedMeasurementSwitch */ "./js/modules/analytics-4/components/setup/SetupEnhancedMeasurementSwitch.js");
/* harmony import */ var _SetupUseSnippetSwitch__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./SetupUseSnippetSwitch */ "./js/modules/analytics-4/components/setup/SetupUseSnippetSwitch.js");
/* harmony import */ var _js_hooks_useFeature__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/hooks/useFeature */ "./js/hooks/useFeature.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * SetupFormFields component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */









function SetupFormFields() {
  const accounts = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getAccountSummaries()) || [];
  const hasExistingTag = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).hasExistingTag());
  const existingTag = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getExistingTag());
  const accountID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getAccountID());
  const measurementID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getMeasurementID());
  const webDataStreamID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getWebDataStreamID());
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_FORMS);
  const {
    setUseSnippet
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4);
  const setupFlowRefreshEnabled = (0,_js_hooks_useFeature__WEBPACK_IMPORTED_MODULE_8__.useFeature)('setupFlowRefresh');
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_10__.useEffect)(() => {
    if (hasExistingTag) {
      setUseSnippet(existingTag !== measurementID);
    }
  }, [setUseSnippet, hasExistingTag, existingTag, measurementID]);
  const resetEnhancedMeasurementSetting = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_10__.useCallback)(() => {
    setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.ENHANCED_MEASUREMENT_FORM, {
      [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.ENHANCED_MEASUREMENT_ENABLED]: true
    });
  }, [setValues]);
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_10__.Fragment, {
    children: [!!accounts.length && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("p", {
      className: "googlesitekit-setup-module__select_account",
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Please select the account information below. You can change this later in your settings.', 'google-site-kit')
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("div", {
      className: "googlesitekit-setup-module__inputs",
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", {
        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_5__.AccountSelect, {
          onChange: resetEnhancedMeasurementSetting
        })
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("div", {
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_5__.PropertySelect, {
          onChange: resetEnhancedMeasurementSetting,
          hasModuleAccess: true
        }), setupFlowRefreshEnabled && (0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_2__.isValidAccountID)(accountID) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_5__.PropertyHint, {})]
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsxs)("div", {
        children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_5__.WebDataStreamSelect, {
          onChange: resetEnhancedMeasurementSetting,
          hasModuleAccess: true
        }), setupFlowRefreshEnabled && (0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_2__.isValidAccountID)(accountID) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_5__.WebDataStreamHint, {})]
      })]
    }), webDataStreamID === _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.WEBDATASTREAM_CREATE && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("div", {
      className: "googlesitekit-setup-module__inputs googlesitekit-setup-module__inputs--multiline",
      children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_5__.WebDataStreamNameInput, {})
    }), hasExistingTag && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_SetupUseSnippetSwitch__WEBPACK_IMPORTED_MODULE_7__["default"], {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_SetupEnhancedMeasurementSwitch__WEBPACK_IMPORTED_MODULE_6__["default"], {})]
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/setup/SetupMain.js":
/*!**************************************************************!*\
  !*** ./js/modules/analytics-4/components/setup/SetupMain.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SetupMain)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_16__);
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! googlesitekit-components */ "googlesitekit-components");
/* harmony import */ var googlesitekit_components__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_components__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _svg_graphics_analytics_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/svg/graphics/analytics.svg */ "./svg/graphics/analytics.svg");
/* harmony import */ var _SetupForm__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./SetupForm */ "./js/modules/analytics-4/components/setup/SetupForm.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_hooks_useExistingTagEffect__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/modules/analytics-4/hooks/useExistingTagEffect */ "./js/modules/analytics-4/hooks/useExistingTagEffect.js");
/* harmony import */ var _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common */ "./js/modules/analytics-4/components/common/index.js");
/* harmony import */ var _js_components_ToastNotice__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/components/ToastNotice */ "./js/components/ToastNotice.js");
/* harmony import */ var _js_components_Typography__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/components/Typography */ "./js/components/Typography/index.js");
/* harmony import */ var _js_hooks_useQueryArg__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/js/hooks/useQueryArg */ "./js/hooks/useQueryArg.js");
/* harmony import */ var _js_hooks_useFeature__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/js/hooks/useFeature */ "./js/hooks/useFeature.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Analytics Main setup component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */













function SetupMain({
  finishSetup
}) {
  const accounts = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.MODULES_ANALYTICS_4).getAccountSummaries());
  const accountID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.MODULES_ANALYTICS_4).getAccountID());
  const hasResolvedAccounts = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.MODULES_ANALYTICS_4).hasFinishedResolution('getAccountSummaries'));
  const usingProxy = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_SITE).isUsingProxy());
  const {
    setAccountID
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.MODULES_ANALYTICS_4);
  const {
    findMatchedAccount,
    matchAndSelectProperty
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.MODULES_ANALYTICS_4);
  const [isMatchedAccount, setIsMatchedAccount] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_15__.useState)(false);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_15__.useEffect)(() => {
    if (!accounts) {
      return;
    }
    async function fetchMatchedAccount() {
      setIsMatchedAccount(true);
      const matchedAccount = await findMatchedAccount();
      setIsMatchedAccount(false);
      if (matchedAccount) {
        setAccountID(matchedAccount._id);
        matchAndSelectProperty(matchedAccount._id);
      }
    }
    if (!accountID) {
      fetchMatchedAccount();
    }
  }, [findMatchedAccount, accounts, setAccountID, accountID, matchAndSelectProperty]);

  // Set the accountID and containerID if there is an existing tag.
  (0,_js_modules_analytics_4_hooks_useExistingTagEffect__WEBPACK_IMPORTED_MODULE_8__["default"])();
  const isCreateAccount = _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.ACCOUNT_CREATE === accountID || Array.isArray(accounts) && !accounts.length;
  const [showProgress] = (0,_js_hooks_useQueryArg__WEBPACK_IMPORTED_MODULE_12__["default"])('showProgress');
  const setupFlowRefreshEnabled = (0,_js_hooks_useFeature__WEBPACK_IMPORTED_MODULE_13__.useFeature)('setupFlowRefresh');
  const isInitialSetupFlow = !!showProgress && setupFlowRefreshEnabled;
  const [searchConsoleSetupSuccess, setSearchConsoleSetupSuccess] = (0,_js_hooks_useQueryArg__WEBPACK_IMPORTED_MODULE_12__["default"])('searchConsoleSetupSuccess');
  const showSearchConsoleSetupSuccessToast = !!searchConsoleSetupSuccess && setupFlowRefreshEnabled;
  let viewComponent;
  // Here we also check for `hasResolvedAccounts` to prevent showing a different case below
  // when the component initially loads and has yet to start fetching accounts.
  if (!hasResolvedAccounts || isMatchedAccount) {
    viewComponent = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx)(googlesitekit_components__WEBPACK_IMPORTED_MODULE_3__.ProgressBar, {});
  } else if (isCreateAccount) {
    viewComponent = usingProxy ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx)(_js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_9__.AccountCreate, {
      className: "googlesitekit-analytics-setup__form"
    }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx)(_js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_9__.AccountCreateLegacy, {});
  } else {
    viewComponent = /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx)(_SetupForm__WEBPACK_IMPORTED_MODULE_5__["default"], {
      finishSetup: finishSetup
    });
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_15__.Fragment, {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxs)("div", {
      className: classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-setup-module googlesitekit-setup-module--analytics', {
        'googlesitekit-feature--setupFlowRefresh': setupFlowRefreshEnabled
      }),
      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx)("div", {
        className: "googlesitekit-setup-module__step",
        children: isInitialSetupFlow ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_11__["default"], {
          as: "h1",
          className: "googlesitekit-setup__title",
          size: "medium",
          type: "headline",
          children: isCreateAccount ? (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Create your Analytics account', 'google-site-kit') : (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Set up Analytics', 'google-site-kit')
        }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_15__.Fragment, {
          children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx)("div", {
            className: "googlesitekit-setup-module__logo",
            children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx)(_svg_graphics_analytics_svg__WEBPACK_IMPORTED_MODULE_4__["default"], {
              width: "40",
              height: "40"
            })
          }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx)(_js_components_Typography__WEBPACK_IMPORTED_MODULE_11__["default"], {
            as: "h3",
            className: "googlesitekit-setup-module__title",
            size: "small",
            type: "headline",
            children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__._x)('Analytics', 'Service name', 'google-site-kit')
          })]
        })
      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx)("div", {
        className: "googlesitekit-setup-module__step",
        children: viewComponent
      })]
    }), showSearchConsoleSetupSuccessToast && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_14__.jsx)(_js_components_ToastNotice__WEBPACK_IMPORTED_MODULE_10__["default"], {
      title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Search Console was successfully set up', 'google-site-kit'),
      onDismiss: () => setSearchConsoleSetupSuccess(undefined)
    })]
  });
}
SetupMain.propTypes = {
  finishSetup: (prop_types__WEBPACK_IMPORTED_MODULE_16___default().func)
};
SetupMain.defaultProps = {
  finishSetup: () => {}
};

/***/ }),

/***/ "./js/modules/analytics-4/components/setup/SetupUseSnippetSwitch.js":
/*!**************************************************************************!*\
  !*** ./js/modules/analytics-4/components/setup/SetupUseSnippetSwitch.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ SetupUseSnippetSwitch)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_components_Typography_P__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/Typography/P */ "./js/components/Typography/P.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_components_common_UseSnippetSwitch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common/UseSnippetSwitch */ "./js/modules/analytics-4/components/common/UseSnippetSwitch.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * GA4 Setup Use Snippet Switch component.
 *
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */





function SetupUseSnippetSwitch() {
  const existingTag = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getExistingTag());
  const measurementID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getMeasurementID());
  const description = existingTag === measurementID ? /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__.Fragment, {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_2__["default"], {
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: existing tag ID */
      (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('A tag %s for the selected property already exists on the site', 'google-site-kit'), existingTag)
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_2__["default"], {
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Consider removing the existing tag to avoid loading both tags on your site', 'google-site-kit')
    })]
  }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_6__.Fragment, {
    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_2__["default"], {
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: existing tag ID */
      (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('An existing tag %s was found on the page', 'google-site-kit'), existingTag)
    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_components_Typography_P__WEBPACK_IMPORTED_MODULE_2__["default"], {
      children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('If you prefer to collect data using that existing Analytics tag, please select the corresponding account and property above', 'google-site-kit')
    })]
  });
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_js_modules_analytics_4_components_common_UseSnippetSwitch__WEBPACK_IMPORTED_MODULE_4__["default"], {
    description: description
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/setup/index.js":
/*!**********************************************************!*\
  !*** ./js/modules/analytics-4/components/setup/index.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   SetupEnhancedMeasurementSwitch: () => (/* reexport safe */ _SetupEnhancedMeasurementSwitch__WEBPACK_IMPORTED_MODULE_0__["default"]),
/* harmony export */   SetupForm: () => (/* reexport safe */ _SetupForm__WEBPACK_IMPORTED_MODULE_3__["default"]),
/* harmony export */   SetupFormFields: () => (/* reexport safe */ _SetupFormFields__WEBPACK_IMPORTED_MODULE_2__["default"]),
/* harmony export */   SetupMain: () => (/* reexport safe */ _SetupMain__WEBPACK_IMPORTED_MODULE_4__["default"]),
/* harmony export */   SetupUseSnippetSwitch: () => (/* reexport safe */ _SetupUseSnippetSwitch__WEBPACK_IMPORTED_MODULE_1__["default"])
/* harmony export */ });
/* harmony import */ var _SetupEnhancedMeasurementSwitch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SetupEnhancedMeasurementSwitch */ "./js/modules/analytics-4/components/setup/SetupEnhancedMeasurementSwitch.js");
/* harmony import */ var _SetupUseSnippetSwitch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SetupUseSnippetSwitch */ "./js/modules/analytics-4/components/setup/SetupUseSnippetSwitch.js");
/* harmony import */ var _SetupFormFields__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SetupFormFields */ "./js/modules/analytics-4/components/setup/SetupFormFields.js");
/* harmony import */ var _SetupForm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./SetupForm */ "./js/modules/analytics-4/components/setup/SetupForm.js");
/* harmony import */ var _SetupMain__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./SetupMain */ "./js/modules/analytics-4/components/setup/SetupMain.js");
/**
 * GA4 setup components.
 *
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */







/***/ }),

/***/ "./js/modules/analytics-4/components/util/whenHasChangedConversionEvents.js":
/*!**********************************************************************************!*\
  !*** ./js/modules/analytics-4/components/util/whenHasChangedConversionEvents.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ whenHasChangedConversionEvents)
/* harmony export */ });
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */



/**
 * Higher-Order Component to render wrapped components when changed conversion events are detected.
 *
 * @since 1.150.0
 *
 * @return {Function} Enhancing function.
 */

function whenHasChangedConversionEvents() {
  return WrappedComponent => {
    function WhenHasChangedConversionEvents(props) {
      const hasChangedConversionEvents = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
        const {
          hasNewConversionReportingEvents,
          hasLostConversionReportingEvents
        } = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4);
        return hasNewConversionReportingEvents() || hasLostConversionReportingEvents();
      }, []);
      if (hasChangedConversionEvents) {
        return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(WrappedComponent, {
          ...props
        });
      }
      const {
        WidgetNull = null
      } = props;
      return WidgetNull && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(WidgetNull, {});
    }
    WhenHasChangedConversionEvents.displayName = `WhenHasChangedConversionEvents(${WrappedComponent.displayName || WrappedComponent.name || 'Component'})`;
    return WhenHasChangedConversionEvents;
  };
}

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js":
/*!******************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ ConnectGA4CTATileWidget)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_components_KeyMetrics_ConnectModuleCTATile__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/components/KeyMetrics/ConnectModuleCTATile */ "./js/components/KeyMetrics/ConnectModuleCTATile.js");
/* harmony import */ var _js_googlesitekit_widgets_hooks_useWidgetStateEffect__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/widgets/hooks/useWidgetStateEffect */ "./js/googlesitekit/widgets/hooks/useWidgetStateEffect.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_components_Null__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/Null */ "./js/components/Null.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * ConnectGA4CTATileWidget component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */







const metadata = {
  moduleSlug: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_4__.MODULE_SLUG_ANALYTICS_4
};
function ConnectGA4CTATileWidget({
  Widget,
  widgetSlug
}) {
  const ga4DependantKeyMetrics = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    const keyMetrics = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).getKeyMetrics();
    if (!keyMetrics) {
      return [];
    }
    return keyMetrics.filter(keyMetric => _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.keyMetricsGA4Widgets.includes(keyMetric)).length;
  });

  // Only render the CTA if there are 3 or fewer GA4-dependent key metrics tiles.
  // Otherwise, render `Null` to hide the CTA.
  // If there are four GA4-dependent key metrics tiles, the `ConnectGA4CTAWidget` will be rendered instead.
  const ConnectModuleCTAComponent = ga4DependantKeyMetrics > 3 ? _js_components_Null__WEBPACK_IMPORTED_MODULE_5__["default"] : _js_components_KeyMetrics_ConnectModuleCTATile__WEBPACK_IMPORTED_MODULE_1__["default"];
  (0,_js_googlesitekit_widgets_hooks_useWidgetStateEffect__WEBPACK_IMPORTED_MODULE_2__["default"])(widgetSlug, ConnectModuleCTAComponent, metadata);

  // Note that we need to render the `Widget` component as a wrapper here so this component will display
  // correctly when used as a `FallbackComponent` for the `whenActive` HOC. Conversely, when `ConnectModuleCTATile`
  // is rendered as an `OverrideComponent` in `WidgetRenderer` (as a result of multiple adjacent widgets rendering
  // this component and thus sharing the same state), it is wrapped with a `Widget` component - the net
  // result being the ConnectModuleCTATile is correctly wrapped in a `Widget` in both cases.
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(Widget, {
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_6__.jsx)(_js_components_KeyMetrics_ConnectModuleCTATile__WEBPACK_IMPORTED_MODULE_1__["default"], {
      ...metadata
    })
  });
}
ConnectGA4CTATileWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().elementType).isRequired,
  widgetSlug: (prop_types__WEBPACK_IMPORTED_MODULE_7___default().string).isRequired
};

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/ConnectGA4CTAWidget.js":
/*!**************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/ConnectGA4CTAWidget.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ ConnectGA4CTAWidget)
/* harmony export */ });
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useIntersection.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_googlesitekit_widgets_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/widgets/datastore/constants */ "./js/googlesitekit/widgets/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/widgets/default-areas */ "./js/googlesitekit/widgets/default-areas.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_location_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/googlesitekit/datastore/location/constants */ "./js/googlesitekit/datastore/location/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_hooks_useActivateModuleCallback__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/hooks/useActivateModuleCallback */ "./js/hooks/useActivateModuleCallback.js");
/* harmony import */ var _js_hooks_useCompleteModuleActivationCallback__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/js/hooks/useCompleteModuleActivationCallback */ "./js/hooks/useCompleteModuleActivationCallback.js");
/* harmony import */ var _js_hooks_useDebounce__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/js/hooks/useDebounce */ "./js/hooks/useDebounce.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_components_Banner__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/js/components/Banner */ "./js/components/Banner/index.js");
/* harmony import */ var _svg_graphics_banner_conversions_setup_cta_svg_url__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/svg/graphics/banner-conversions-setup-cta.svg?url */ "./svg/graphics/banner-conversions-setup-cta.svg?url");
/* harmony import */ var _svg_graphics_banner_conversions_setup_cta_mobile_svg_url__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @/svg/graphics/banner-conversions-setup-cta-mobile.svg?url */ "./svg/graphics/banner-conversions-setup-cta-mobile.svg?url");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * ConnectGA4CTA component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


















function ConnectGA4CTAWidget({
  Widget,
  WidgetNull
}) {
  const trackingRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_19__.useRef)();
  const ga4DependantKeyMetrics = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    const keyMetrics = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).getKeyMetrics();
    const widgets = select(_js_googlesitekit_widgets_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_WIDGETS).getWidgets(_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_5__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY);
    if (!keyMetrics || !widgets) {
      return [];
    }
    return widgets.filter(({
      slug,
      modules
    }) => keyMetrics.includes(slug) && modules.includes(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_10__.MODULE_SLUG_ANALYTICS_4));
  });
  const isAnalyticsActive = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_MODULES).isModuleActive(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_10__.MODULE_SLUG_ANALYTICS_4));
  const isNavigatingToReauthURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    const adminReauthURL = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getAdminReauthURL();
    if (!adminReauthURL) {
      return false;
    }
    return select(_js_googlesitekit_datastore_location_constants__WEBPACK_IMPORTED_MODULE_7__.CORE_LOCATION).isNavigatingTo(adminReauthURL);
  });
  const isActivatingAnalytics = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_MODULES).isFetchingSetModuleActivation(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_10__.MODULE_SLUG_ANALYTICS_4, true));
  const connectGA4URL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_8__.CORE_SITE).getModuleSettingsEditURL(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_10__.MODULE_SLUG_ANALYTICS_4));
  const isNavigatingToGA4URL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_location_constants__WEBPACK_IMPORTED_MODULE_7__.CORE_LOCATION).isNavigatingTo(connectGA4URL));
  const {
    dismissItem
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER);
  const activateAnalytics = (0,_js_hooks_useActivateModuleCallback__WEBPACK_IMPORTED_MODULE_11__["default"])(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_10__.MODULE_SLUG_ANALYTICS_4);
  const completeAnalyticsActivation = (0,_js_hooks_useCompleteModuleActivationCallback__WEBPACK_IMPORTED_MODULE_12__["default"])(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_10__.MODULE_SLUG_ANALYTICS_4);
  const handleCTAClick = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_19__.useCallback)(() => {
    if (isAnalyticsActive) {
      return completeAnalyticsActivation();
    }
    activateAnalytics();
    return null;
  }, [activateAnalytics, completeAnalyticsActivation, isAnalyticsActive]);
  const intersectionEntry = (0,react_use__WEBPACK_IMPORTED_MODULE_20__["default"])(trackingRef, {
    threshold: 0.25
  });
  const [hasBeenInView, setHasBeenInView] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_19__.useState)(false);
  const inView = !!intersectionEntry?.intersectionRatio;
  const {
    triggerSurvey
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_19__.useEffect)(() => {
    if (!inView || hasBeenInView) {
      return;
    }
    triggerSurvey('view_kmw_setup_cta', {
      ttl: _js_util__WEBPACK_IMPORTED_MODULE_9__.WEEK_IN_SECONDS
    });
    setHasBeenInView(true);
  }, [inView, hasBeenInView, triggerSurvey]);
  const [inProgress, setInProgress] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_19__.useState)(false);

  /*
   * Using debounce here because the spinner has to render across two separate calls.
   * Rather than risk it flickering on and off in between the activation call completing and
   * the navigate call starting, we will just set a debounce to keep the spinner for 3 seconds.
   */
  const debouncedSetInProgress = (0,_js_hooks_useDebounce__WEBPACK_IMPORTED_MODULE_13__.useDebounce)(setInProgress, 3000);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_19__.useEffect)(() => {
    if (isActivatingAnalytics || isNavigatingToReauthURL || isNavigatingToGA4URL) {
      setInProgress(true);
    } else {
      debouncedSetInProgress(false);
    }
  }, [isActivatingAnalytics, isNavigatingToReauthURL, debouncedSetInProgress, isNavigatingToGA4URL]);
  const isDismissed = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).isItemDismissed(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_10__.KM_CONNECT_GA4_CTA_WIDGET_DISMISSED_ITEM_KEY));
  if (isDismissed !== false || ga4DependantKeyMetrics.length < 4) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__.jsx)(WidgetNull, {});
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__.jsx)(Widget, {
    noPadding: true,
    children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__.jsx)(_js_components_Banner__WEBPACK_IMPORTED_MODULE_15__["default"], {
      ref: trackingRef,
      className: "googlesitekit-banner--setup-cta googlesitekit-km-connect-ga4-cta",
      title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Analytics is disconnected', 'google-site-kit'),
      description: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Metrics cannot be displayed without Analytics', 'google-site-kit'),
      ctaButton: {
        label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Connect Analytics', 'google-site-kit'),
        onClick: handleCTAClick,
        disabled: inProgress,
        inProgress
      },
      svg: {
        desktop: _svg_graphics_banner_conversions_setup_cta_svg_url__WEBPACK_IMPORTED_MODULE_16__["default"],
        mobile: _svg_graphics_banner_conversions_setup_cta_mobile_svg_url__WEBPACK_IMPORTED_MODULE_17__["default"],
        verticalPosition: 'top'
      },
      footer: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_18__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_14__["default"], {
        onClick: () => dismissItem(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_10__.KM_CONNECT_GA4_CTA_WIDGET_DISMISSED_ITEM_KEY),
        children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Maybe later', 'google-site-kit')
      })
    })
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/ConversionReportingNotificationCTAWidget.js":
/*!***********************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/ConversionReportingNotificationCTAWidget.js ***!
  \***********************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_24___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_24__);
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useIntersection.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @wordpress/compose */ "../node_modules/@wordpress/compose/build-module/hooks/use-previous/index.js");
/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! @wordpress/compose */ "../node_modules/@wordpress/compose/build-module/higher-order/compose.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/KeyMetrics/constants */ "./js/components/KeyMetrics/constants.js");
/* harmony import */ var _js_components_KeyMetrics_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/components/KeyMetrics/utils */ "./js/components/KeyMetrics/utils.js");
/* harmony import */ var _js_components_KeyMetrics_ConversionReportingDashboardSubtleNotification__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/components/KeyMetrics/ConversionReportingDashboardSubtleNotification */ "./js/components/KeyMetrics/ConversionReportingDashboardSubtleNotification.js");
/* harmony import */ var _js_components_KeyMetrics_LostEventsSubtleNotification__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/components/KeyMetrics/LostEventsSubtleNotification */ "./js/components/KeyMetrics/LostEventsSubtleNotification.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/hooks/useViewContext */ "./js/hooks/useViewContext.js");
/* harmony import */ var _js_components_KeyMetrics_hooks_useDisplayNewEventsCalloutForTailoredMetrics__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/js/components/KeyMetrics/hooks/useDisplayNewEventsCalloutForTailoredMetrics */ "./js/components/KeyMetrics/hooks/useDisplayNewEventsCalloutForTailoredMetrics.js");
/* harmony import */ var _js_components_KeyMetrics_hooks_useDisplayNewEventsCalloutForUserPickedMetrics__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/js/components/KeyMetrics/hooks/useDisplayNewEventsCalloutForUserPickedMetrics */ "./js/components/KeyMetrics/hooks/useDisplayNewEventsCalloutForUserPickedMetrics.js");
/* harmony import */ var _js_components_KeyMetrics_hooks_useDisplayNewEventsCalloutAfterInitialDetection__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/js/components/KeyMetrics/hooks/useDisplayNewEventsCalloutAfterInitialDetection */ "./js/components/KeyMetrics/hooks/useDisplayNewEventsCalloutAfterInitialDetection.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_modules_analytics_4_components_util_whenHasChangedConversionEvents__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @/js/modules/analytics-4/components/util/whenHasChangedConversionEvents */ "./js/modules/analytics-4/components/util/whenHasChangedConversionEvents.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * ConversionReportingNotificationCTAWidget component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */



















function ConversionReportingNotificationCTAWidget({
  Widget,
  WidgetNull
}) {
  const viewContext = (0,_js_hooks_useViewContext__WEBPACK_IMPORTED_MODULE_11__["default"])();
  const [isSaving, setIsSaving] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_20__.useState)(false);
  const [isViewed, setIsViewed] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_20__.useState)(false);
  const trackDismissalRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_20__.useRef)(true);
  const conversionReportingNotificationRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_20__.useRef)();
  const intersectionEntry = (0,react_use__WEBPACK_IMPORTED_MODULE_21__["default"])(conversionReportingNotificationRef, {
    threshold: 0.25
  });
  const inView = !!intersectionEntry?.intersectionRatio;
  const haveLostConversionEvents = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).haveLostEventsForCurrentMetrics());
  const newConversionEventsLastUpdateAt = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getNewConversionEventsLastUpdateAt());
  const lostConversionEventsLastUpdateAt = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getLostConversionEventsLastUpdateAt());
  const haveNewConversionEventsAfterDismiss = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).haveNewConversionEventsAfterDismiss(newConversionEventsLastUpdateAt));
  const haveLostConversionEventsAfterDismiss = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).haveLostConversionEventsAfterDismiss(lostConversionEventsLastUpdateAt));

  // Initial callout is surfaced to the users with tailored metrics, if detectedEvents setting
  // has a conversion event associated with the ACR key metrics matching the current site purpose answer.
  // If new ACR key metrics that can be added are found using haveConversionReportingEventsForTailoredMetrics,
  // and have not been already included, which is determined by includeConversionEvents user input setting, callout banner should be displayed.
  const shouldShowInitialCalloutForTailoredMetrics = (0,_js_components_KeyMetrics_hooks_useDisplayNewEventsCalloutForTailoredMetrics__WEBPACK_IMPORTED_MODULE_12__["default"])(haveNewConversionEventsAfterDismiss);

  // If users have set up key metrics manually and ACR events are detected,
  // we display the same callout banner, with a different call to action
  // "Select metrics" which opens the metric selection panel.
  const shouldShowCalloutForUserPickedMetrics = (0,_js_components_KeyMetrics_hooks_useDisplayNewEventsCalloutForUserPickedMetrics__WEBPACK_IMPORTED_MODULE_13__["default"])(haveNewConversionEventsAfterDismiss);

  // If new events have been detected after initial set of events, we display
  // the same callout banner, with a different call to action "View metrics"
  // which opens the metric selection panel.
  const shouldShowCalloutForNewEvents = (0,_js_components_KeyMetrics_hooks_useDisplayNewEventsCalloutAfterInitialDetection__WEBPACK_IMPORTED_MODULE_14__["default"])(haveNewConversionEventsAfterDismiss);
  const shouldShowCalloutForLostEvents = haveLostConversionEvents && haveLostConversionEventsAfterDismiss;
  const userPickedMetrics = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).getUserPickedMetrics());

  // Build a common object to use as the first argument in conversionReportingDetectedEventsTracking().
  const conversionReportingDetectedEventsTrackingArgs = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_20__.useMemo)(() => {
    return {
      shouldShowInitialCalloutForTailoredMetrics,
      shouldShowCalloutForUserPickedMetrics,
      shouldShowCalloutForNewEvents,
      userPickedMetrics
    };
  }, [shouldShowInitialCalloutForTailoredMetrics, shouldShowCalloutForUserPickedMetrics, shouldShowCalloutForNewEvents, userPickedMetrics]);
  const isSavingConversionReportingSettings = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).isSavingConversionReportingSettings());
  const isSavingKeyMetricsSettings = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).isSavingKeyMetricsSettings());
  const {
    saveConversionReportingSettings
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER);
  const dismissCallout = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_20__.useCallback)(async eventType => {
    // Dismissed callout settings times should rely on real times, not the reference date,
    // so the timestamps are consistent even when changing the reference dates when developing/testing.
    const timestamp = Math.round(Date.now() / 1000); // eslint-disable-line sitekit/no-direct-date
    const conversionReportingSettings = {
      newEventsCalloutDismissedAt: timestamp
    };
    if (eventType === 'lostEvents') {
      conversionReportingSettings.lostEventsCalloutDismissedAt = timestamp;

      // Handle internal tracking for lost events banner dismissal.
      if (trackDismissalRef.current) {
        (0,_js_util__WEBPACK_IMPORTED_MODULE_15__.trackEvent)(`${viewContext}_kmw-lost-conversion-events-detected-notification`, 'dismiss_notification', 'conversion_reporting');
      }
    } else if (trackDismissalRef.current) {
      // Handle internal tracking.
      (0,_js_components_KeyMetrics_utils__WEBPACK_IMPORTED_MODULE_7__.conversionReportingDetectedEventsTracking)(conversionReportingDetectedEventsTrackingArgs, viewContext, 'dismiss_notification');
    }
    await saveConversionReportingSettings(conversionReportingSettings);
  }, [viewContext, conversionReportingDetectedEventsTrackingArgs, saveConversionReportingSettings]);
  const userInputPurposeConversionEvents = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getUserInputPurposeConversionEvents());
  const {
    setUserInputSetting,
    saveUserInputSettings
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER);
  const handleAddMetricsClick = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_20__.useCallback)(() => {
    if (shouldShowInitialCalloutForTailoredMetrics) {
      setIsSaving(true);
      setUserInputSetting('includeConversionEvents', userInputPurposeConversionEvents);
      saveUserInputSettings();
      setIsSaving(false);
    }

    // Handle internal tracking.
    (0,_js_components_KeyMetrics_utils__WEBPACK_IMPORTED_MODULE_7__.conversionReportingDetectedEventsTracking)(conversionReportingDetectedEventsTrackingArgs, viewContext, 'confirm_add_new_conversion_metrics');
    trackDismissalRef.current = false;
    dismissCallout();
  }, [setUserInputSetting, saveUserInputSettings, dismissCallout, userInputPurposeConversionEvents, shouldShowInitialCalloutForTailoredMetrics, viewContext, conversionReportingDetectedEventsTrackingArgs]);
  const {
    setValue
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_UI);
  const handleSelectMetricsClick = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_20__.useCallback)((clickContext = '') => {
    trackDismissalRef.current = false;
    setValue(_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_6__.KEY_METRICS_SELECTION_PANEL_OPENED_KEY, true);

    // Handle internal tracking of lost events variant.
    if ('lostEvents' === clickContext) {
      if (shouldShowCalloutForLostEvents) {
        (0,_js_util__WEBPACK_IMPORTED_MODULE_15__.trackEvent)(`${viewContext}_kmw-lost-conversion-events-detected-notification`, 'confirm_get_select_metrics', 'conversion_reporting');
      }
      return;
    }
    if (!shouldShowCalloutForNewEvents) {
      // Handle internal tracking for initial events detection - manually selected KMW.
      (0,_js_components_KeyMetrics_utils__WEBPACK_IMPORTED_MODULE_7__.conversionReportingDetectedEventsTracking)(conversionReportingDetectedEventsTrackingArgs, viewContext, 'confirm_select_new_conversion_metrics');
    }
    if (shouldShowCalloutForNewEvents) {
      // Handle internal tracking for new events detection - after initial events were detected.
      (0,_js_components_KeyMetrics_utils__WEBPACK_IMPORTED_MODULE_7__.conversionReportingDetectedEventsTracking)(conversionReportingDetectedEventsTrackingArgs, viewContext, 'confirm_view_new_conversion_metrics');
    }
  }, [viewContext, conversionReportingDetectedEventsTrackingArgs, setValue, shouldShowCalloutForLostEvents, shouldShowCalloutForNewEvents]);
  const isSelectionPanelOpen = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_UI).getValue(_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_6__.KEY_METRICS_SELECTION_PANEL_OPENED_KEY));
  const prevIsSelectionPanelOpen = (0,_wordpress_compose__WEBPACK_IMPORTED_MODULE_22__["default"])(isSelectionPanelOpen);

  // Handle dismiss of new events callout on opening of the selection panel.
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_20__.useEffect)(() => {
    if (!prevIsSelectionPanelOpen && isSelectionPanelOpen && (
    // Dismiss the new events callout if shouldShowCalloutForNewEvents is true
    // and settings are not being saved. This prevents duplicate requests, as after
    // the first call, the settings enter the saving state. Once saving is complete,
    // shouldShowCalloutForNewEvents will no longer be true.
    !isSavingConversionReportingSettings && (shouldShowCalloutForNewEvents || shouldShowCalloutForUserPickedMetrics) ||
    // shouldShowInitialCalloutForTailoredMetrics is more specific because the "Add metrics"
    // CTA does not open the panel; it directly adds metrics. We want to dismiss this callout
    // only when the user opens the selection panel and saves their metrics selection. This marks
    // the transition to manual selection, after which this callout should no longer be shown.
    shouldShowInitialCalloutForTailoredMetrics && isSavingKeyMetricsSettings)) {
      dismissCallout();
    }
  }, [isSelectionPanelOpen, prevIsSelectionPanelOpen, shouldShowCalloutForNewEvents, shouldShowCalloutForUserPickedMetrics, shouldShowInitialCalloutForTailoredMetrics, isSavingConversionReportingSettings, isSavingKeyMetricsSettings, dismissCallout]);

  // Handle dismiss of lost events callout on opening of the selection panel.
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_20__.useEffect)(() => {
    if (!prevIsSelectionPanelOpen && isSelectionPanelOpen && shouldShowCalloutForLostEvents && !isSavingConversionReportingSettings) {
      dismissCallout('lostEvents');
    }
  }, [isSelectionPanelOpen, prevIsSelectionPanelOpen, isSavingConversionReportingSettings, shouldShowCalloutForLostEvents, dismissCallout]);

  // Track when the notification is viewed.
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_20__.useEffect)(() => {
    if (!isViewed && inView) {
      // Handle internal tracking.
      (0,_js_components_KeyMetrics_utils__WEBPACK_IMPORTED_MODULE_7__.conversionReportingDetectedEventsTracking)(conversionReportingDetectedEventsTrackingArgs, viewContext, 'view_notification');

      // Handle internal tracking for lost events banner.
      if (shouldShowCalloutForLostEvents) {
        (0,_js_util__WEBPACK_IMPORTED_MODULE_15__.trackEvent)(`${viewContext}_kmw-lost-conversion-events-detected-notification`, 'view_notification', 'conversion_reporting');
      }
      setIsViewed(true);
    }
  }, [isViewed, inView, viewContext, conversionReportingDetectedEventsTrackingArgs, shouldShowCalloutForLostEvents]);
  const documentationURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_16__.CORE_SITE).getDocumentationLinkURL('key-metrics'));
  if (!shouldShowInitialCalloutForTailoredMetrics && !shouldShowCalloutForLostEvents && !shouldShowCalloutForUserPickedMetrics && !shouldShowCalloutForNewEvents) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_19__.jsx)(WidgetNull, {});
  }
  let description = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_23__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('We’ve extended your metrics selection with metrics that aren’t available by default in Analytics. Add them to your dashboard to get a better understanding of how users interact with your site. <a>Learn more</a>', 'google-site-kit'), {
    a: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_19__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_17__["default"], {
      href: documentationURL,
      "aria-label": (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Learn more about advanced conversion reporting', 'google-site-kit'),
      external: true
    })
  });
  let ctaLabel = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Select metrics', 'google-site-kit');
  let dismissCTALabel = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Maybe later', 'google-site-kit');
  if (shouldShowInitialCalloutForTailoredMetrics) {
    ctaLabel = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Add metrics', 'google-site-kit');
  }
  if (shouldShowCalloutForNewEvents) {
    description = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('We’ve extended your metrics selection based on your website events', 'google-site-kit');
    ctaLabel = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('View metrics', 'google-site-kit');
    dismissCTALabel = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Got it', 'google-site-kit');
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_19__.jsxs)(Widget, {
    ref: conversionReportingNotificationRef,
    noPadding: true,
    fullWidth: true,
    children: [shouldShowCalloutForLostEvents && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_19__.jsx)(_js_components_KeyMetrics_LostEventsSubtleNotification__WEBPACK_IMPORTED_MODULE_9__["default"], {
      onSelectMetricsCallback: () => {
        handleSelectMetricsClick('lostEvents');
      },
      onDismissCallback: () => dismissCallout('lostEvents')
    }), (shouldShowInitialCalloutForTailoredMetrics || shouldShowCalloutForUserPickedMetrics || shouldShowCalloutForNewEvents) && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_19__.jsx)(_js_components_KeyMetrics_ConversionReportingDashboardSubtleNotification__WEBPACK_IMPORTED_MODULE_8__["default"], {
      description: description,
      ctaLabel: ctaLabel,
      dismissCTALabel: dismissCTALabel,
      handleCTAClick: shouldShowInitialCalloutForTailoredMetrics ? handleAddMetricsClick : handleSelectMetricsClick,
      isSaving: isSaving,
      onDismiss: dismissCallout
    })]
  });
}
ConversionReportingNotificationCTAWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_24___default().elementType).isRequired,
  WidgetNull: (prop_types__WEBPACK_IMPORTED_MODULE_24___default().elementType)
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_wordpress_compose__WEBPACK_IMPORTED_MODULE_25__["default"])((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_10__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4
}), (0,_js_modules_analytics_4_components_util_whenHasChangedConversionEvents__WEBPACK_IMPORTED_MODULE_18__["default"])())(ConversionReportingNotificationCTAWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/EngagedTrafficSourceWidget.js":
/*!*********************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/EngagedTrafficSourceWidget.js ***!
  \*********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/KeyMetrics */ "./js/components/KeyMetrics/index.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * EngagedTrafficSourceWidget component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */









function EngagedTrafficSourceWidget(props) {
  const {
    Widget
  } = props;
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.DATE_RANGE_OFFSET,
    compare: true
  }));
  const reportOptions = {
    ...dates,
    dimensions: ['sessionDefaultChannelGroup'],
    metrics: [{
      name: 'engagedSessions'
    }],
    orderBy: 'engagedSessions',
    limit: 1,
    reportID: 'analytics-4_engaged-traffic-source-widget_widget_reportOptions'
  };
  const report = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getReport(reportOptions), [reportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [reportOptions]));
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [reportOptions]));
  const {
    rows = [],
    totals = []
  } = report || {};
  function makeFilter(dateRange, dimensionIndex) {
    return row => (0,lodash__WEBPACK_IMPORTED_MODULE_0__.get)(row, `dimensionValues.${dimensionIndex}.value`) === dateRange;
  }
  const topTrafficSource = rows.filter(makeFilter('date_range_0', 1))[0]?.dimensionValues?.[0].value || '-';
  const currentEngagedSessions = parseFloat(rows.filter(makeFilter('date_range_0', 1))[0]?.metricValues?.[0]?.value) || 0;
  const currentTotalEngagedSessions = parseFloat(totals.filter(makeFilter('date_range_0', 1))[0]?.metricValues?.[0]?.value) || 0;
  const currentEngagedSessionsRate = currentEngagedSessions / currentTotalEngagedSessions || 0;
  const previousEngagedSessions = parseFloat(rows.filter(makeFilter('date_range_1', 1))[0]?.metricValues?.[0]?.value) || 0;
  const previousTotalEngagedSessions = parseFloat(totals.filter(makeFilter('date_range_1', 1))[0]?.metricValues?.[0]?.value) || 0;
  const previousEngagedSessionsRate = previousEngagedSessions / previousTotalEngagedSessions || 0;
  const format = {
    style: 'percent',
    signDisplay: 'never',
    maximumFractionDigits: 1
  };
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__.MetricTileText, {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.KM_ANALYTICS_ENGAGED_TRAFFIC_SOURCE,
    metricValue: topTrafficSource,
    metricValueFormat: format,
    subText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.sprintf)(/* translators: 1. Percentage of total engaged sessions. 2: Total number of engaged sessions. */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('%1$s of %2$s engaged sessions', 'google-site-kit'), (0,_js_util__WEBPACK_IMPORTED_MODULE_7__.numFmt)(currentEngagedSessionsRate, format), (0,_js_util__WEBPACK_IMPORTED_MODULE_7__.numFmt)(currentTotalEngagedSessions, {
      style: 'decimal'
    })),
    previousValue: previousEngagedSessionsRate,
    currentValue: currentEngagedSessionsRate,
    loading: loading,
    error: error,
    moduleSlug: "analytics-4"
  });
}
EngagedTrafficSourceWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_9__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_8__["default"]
})(EngagedTrafficSourceWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/LeastEngagingPagesWidget.js":
/*!*******************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/LeastEngagingPagesWidget.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_13__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/KeyMetrics */ "./js/components/KeyMetrics/index.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common */ "./js/modules/analytics-4/components/common/index.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/* harmony import */ var _js_modules_analytics_4_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/modules/analytics-4/utils */ "./js/modules/analytics-4/utils/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * LeastEngagingPagesWidget component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */













function LeastEngagingPagesWidget(props) {
  const {
    Widget
  } = props;
  const viewOnlyDashboard = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_10__["default"])();
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.DATE_RANGE_OFFSET
  }));
  const pageViewsReportOptions = {
    ...dates,
    dimensions: ['pagePath'],
    metrics: [{
      name: 'screenPageViews'
    }],
    orderby: [{
      metric: {
        metricName: 'screenPageViews'
      },
      desc: true
    }],
    reportID: 'analytics-4_least-engaging-pages-widget_widget_pageViewsReportOptions'
  };
  const pageViewsReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getReport(pageViewsReportOptions), [pageViewsReportOptions]);
  const medianIndex = parseInt(pageViewsReport?.rowCount / 2, 10);
  const medianPageViews = parseInt(pageViewsReport?.rows?.[medianIndex]?.metricValues?.[0]?.value, 10) || 0;
  const reportOptions = {
    ...dates,
    dimensions: ['pagePath'],
    metrics: ['bounceRate', 'screenPageViews'],
    orderby: [{
      metric: {
        metricName: 'bounceRate'
      },
      desc: true
    }, {
      metric: {
        metricName: 'screenPageViews'
      },
      desc: true
    }],
    metricFilters: {
      screenPageViews: {
        operation: 'GREATER_THAN_OR_EQUAL',
        value: {
          int64Value: medianPageViews
        }
      }
    },
    limit: 3,
    reportID: 'analytics-4_least-engaging-pages-widget_widget_reportOptions'
  };
  const loadedPageViewsReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [pageViewsReportOptions]));
  const pageViewsReportError = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [pageViewsReportOptions]));
  const report = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => {
    if (!loadedPageViewsReport) {
      return undefined;
    }
    if (pageViewsReportError) {
      return null;
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getReport(reportOptions);
  }, [loadedPageViewsReport, pageViewsReportError, reportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    const reportError = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [reportOptions]);
    if (pageViewsReportError && reportError) {
      return [pageViewsReportError, reportError];
    }
    return pageViewsReportError || reportError || undefined;
  });
  const titles = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => !error ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getPageTitles(report, reportOptions) : undefined, [error, report, reportOptions]);
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [reportOptions]) || titles === undefined || !loadedPageViewsReport);
  const format = {
    style: 'percent',
    signDisplay: 'never',
    maximumFractionDigits: 1
  };
  const {
    rows = []
  } = report || {};
  const columns = [{
    field: 'dimensionValues.0.value',
    Component({
      fieldValue
    }) {
      const url = fieldValue;
      const title = (0,_js_modules_analytics_4_utils__WEBPACK_IMPORTED_MODULE_11__.decodeAmpersand)(titles[url]);
      // Utilizing `useSelect` inside the component rather than
      // returning its direct value to the `columns` array.
      // This pattern ensures that the component re-renders correctly based on changes in state,
      // preventing potential issues with stale or out-of-sync data.
      // Note: This pattern is replicated in a few other spots within our codebase.
      const serviceURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
        return !viewOnlyDashboard ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getServiceReportURL('all-pages-and-screens', {
          filters: {
            unifiedPagePathScreen: url
          },
          dates
        }) : null;
      });
      if (viewOnlyDashboard) {
        return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_4__.MetricTileTablePlainText, {
          content: title
        });
      }
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_5__["default"], {
        href: serviceURL,
        title: title,
        external: true,
        hideExternalIndicator: true,
        children: title
      });
    }
  }, {
    field: 'metricValues.0.value',
    Component({
      fieldValue
    }) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)("strong", {
        children: (0,_js_util__WEBPACK_IMPORTED_MODULE_7__.numFmt)(fieldValue, format)
      });
    }
  }];
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_4__.MetricTileTable, {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_LEAST_ENGAGING_PAGES,
    loading: loading,
    rows: rows,
    columns: columns,
    ZeroState: _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_6__.ZeroDataMessage,
    error: error,
    moduleSlug: "analytics-4"
  });
}
LeastEngagingPagesWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_8__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__["default"]
})(LeastEngagingPagesWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/MostEngagingPagesWidget.js":
/*!******************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/MostEngagingPagesWidget.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_13__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/KeyMetrics */ "./js/components/KeyMetrics/index.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common */ "./js/modules/analytics-4/components/common/index.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_modules_analytics_4_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/modules/analytics-4/utils */ "./js/modules/analytics-4/utils/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * MostEngagingPagesWidget component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */













function MostEngagingPagesWidget(props) {
  const {
    Widget
  } = props;
  const viewOnlyDashboard = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_9__["default"])();
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.DATE_RANGE_OFFSET
  }));
  const pageViewsReportOptions = {
    ...dates,
    dimensions: ['pagePath'],
    metrics: [{
      name: 'screenPageViews'
    }],
    limit: 1,
    reportID: 'analytics-4_most-engaging-pages-widget_widget_pageViewsReportOptions'
  };
  const pageViewsReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getReport(pageViewsReportOptions), [pageViewsReportOptions]);
  const averagePageViews = Math.round(pageViewsReport?.totals?.[0]?.metricValues?.[0]?.value / pageViewsReport?.rowCount) || 0;
  const reportOptions = {
    ...dates,
    dimensions: ['pagePath'],
    metrics: ['engagementRate', 'screenPageViews'],
    orderby: [{
      metric: {
        metricName: 'engagementRate'
      },
      desc: true
    }, {
      metric: {
        metricName: 'screenPageViews'
      },
      desc: true
    }],
    metricFilters: {
      screenPageViews: {
        filterType: 'numericFilter',
        operation: 'GREATER_THAN_OR_EQUAL',
        value: {
          int64Value: averagePageViews
        }
      }
    },
    limit: 3,
    reportID: 'analytics-4_most-engaging-pages-widget_widget_reportOptions'
  };
  const pageViewsReportErrors = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [pageViewsReportOptions]));
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    const reportOptionsErrors = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [reportOptions]);
    if (pageViewsReportErrors && reportOptionsErrors) {
      return [pageViewsReportErrors, reportOptionsErrors];
    }
    return pageViewsReportErrors || reportOptionsErrors || undefined;
  });
  const hasFinishedResolvingPageViewReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [pageViewsReportOptions]));
  const report = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => {
    if (!hasFinishedResolvingPageViewReport) {
      return undefined;
    }
    if (pageViewsReportErrors) {
      return null;
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getReport(reportOptions);
  }, [hasFinishedResolvingPageViewReport, pageViewsReportErrors, reportOptions]);
  const titles = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => !error ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getPageTitles(report, reportOptions) : undefined, [error, report, reportOptions]);
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [reportOptions]) || !hasFinishedResolvingPageViewReport || titles === undefined);
  const {
    rows = []
  } = report || {};
  const format = {
    style: 'percent',
    signDisplay: 'never',
    maximumFractionDigits: 1
  };
  const columns = [{
    field: 'dimensionValues.0.value',
    Component({
      fieldValue
    }) {
      const url = fieldValue;
      const title = (0,_js_modules_analytics_4_utils__WEBPACK_IMPORTED_MODULE_11__.decodeAmpersand)(titles[url]);
      // Utilizing `useSelect` inside the component rather than
      // returning its direct value to the `columns` array.
      // This pattern ensures that the component re-renders correctly based on changes in state,
      // preventing potential issues with stale or out-of-sync data.
      // Note: This pattern is replicated in a few other spots within our codebase.
      const serviceURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
        return !viewOnlyDashboard ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getServiceReportURL('all-pages-and-screens', {
          filters: {
            unifiedPagePathScreen: url
          },
          dates
        }) : null;
      });
      if (viewOnlyDashboard) {
        return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_4__.MetricTileTablePlainText, {
          content: title
        });
      }
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_5__["default"], {
        href: serviceURL,
        title: title,
        external: true,
        hideExternalIndicator: true,
        children: title
      });
    }
  }, {
    field: 'metricValues.0.value',
    Component({
      fieldValue
    }) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)("strong", {
        children: (0,_js_util__WEBPACK_IMPORTED_MODULE_10__.numFmt)(fieldValue, format)
      });
    }
  }];
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_4__.MetricTileTable, {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_MOST_ENGAGING_PAGES,
    loading: loading,
    rows: rows,
    columns: columns,
    ZeroState: _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_6__.ZeroDataMessage,
    error: error,
    moduleSlug: "analytics-4"
  });
}
MostEngagingPagesWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_7__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_8__["default"]
})(MostEngagingPagesWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/NewVisitorsWidget.js":
/*!************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/NewVisitorsWidget.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/KeyMetrics */ "./js/components/KeyMetrics/index.js");
/* harmony import */ var _js_util_i18n__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util/i18n */ "./js/util/i18n.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * NewVisitorsWidget component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */









function NewVisitorsWidget({
  Widget
}) {
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.DATE_RANGE_OFFSET,
    compare: true
  }));
  const reportOptions = {
    ...dates,
    dimensions: ['newVsReturning'],
    metrics: [{
      name: 'activeUsers'
    }],
    reportID: 'analytics-4_new-visitors-widget_widget_reportOptions'
  };
  const report = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getReport(reportOptions), [reportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [reportOptions]));
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [reportOptions]));
  const {
    rows = [],
    totals = []
  } = report || {};
  function makeFind(dateRange) {
    return row => (0,lodash__WEBPACK_IMPORTED_MODULE_0__.get)(row, 'dimensionValues.0.value') === 'new' && (0,lodash__WEBPACK_IMPORTED_MODULE_0__.get)(row, 'dimensionValues.1.value') === dateRange;
  }
  const newVisitors = rows.find(makeFind('date_range_0'))?.metricValues?.[0]?.value || 0;
  const total = Number(totals[0]?.metricValues?.[0]?.value) || 0;
  const prevTotal = Number(totals[1]?.metricValues?.[0]?.value) || 0;
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__.MetricTileNumeric, {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.KM_ANALYTICS_NEW_VISITORS,
    metricValue: newVisitors,
    subText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.sprintf)(/* translators: %d: Number of total visitors visiting the site. */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('of %s total visitors', 'google-site-kit'), (0,_js_util_i18n__WEBPACK_IMPORTED_MODULE_7__.numFmt)(total, {
      style: 'decimal'
    })),
    previousValue: prevTotal,
    currentValue: total,
    loading: loading,
    error: error,
    moduleSlug: "analytics-4"
  });
}
NewVisitorsWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_8__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__["default"]
})(NewVisitorsWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/PagesPerVisitWidget.js":
/*!**************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/PagesPerVisitWidget.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/KeyMetrics */ "./js/components/KeyMetrics/index.js");
/* harmony import */ var _js_util_i18n__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util/i18n */ "./js/util/i18n.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * PagesPerVisitWidget component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */









function PagesPerVisitWidget({
  Widget
}) {
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.DATE_RANGE_OFFSET,
    compare: true
  }));
  const reportOptions = {
    ...dates,
    metrics: [{
      name: 'screenPageViewsPerSession'
    }, {
      name: 'screenPageViews'
    }],
    reportID: 'analytics-4_pages-per-visit-widget_widget_reportOptions'
  };
  const report = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getReport(reportOptions), [reportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [reportOptions]));
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [reportOptions]));
  const {
    rows = []
  } = report || {};
  function makeFind(dateRange) {
    return row => (0,lodash__WEBPACK_IMPORTED_MODULE_0__.get)(row, 'dimensionValues.0.value') === dateRange;
  }
  const currentPagesPerVisit = Number(rows.find(makeFind('date_range_0'))?.metricValues?.[0]?.value) || 0;
  const previousPagesPerVisit = Number(rows.find(makeFind('date_range_1'))?.metricValues?.[0]?.value) || 0;
  const currentTotalPageViews = Number(rows.find(makeFind('date_range_0'))?.metricValues?.[1]?.value) || 0;
  const format = {
    style: 'decimal',
    maximumFractionDigits: 2
  };
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__.MetricTileNumeric, {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.KM_ANALYTICS_PAGES_PER_VISIT,
    metricValue: currentPagesPerVisit,
    metricValueFormat: format,
    subText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.sprintf)(/* translators: %s: Number of total page views. */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('%s page views', 'google-site-kit'), (0,_js_util_i18n__WEBPACK_IMPORTED_MODULE_7__.numFmt)(currentTotalPageViews, {
      style: 'decimal'
    })),
    previousValue: previousPagesPerVisit,
    currentValue: currentPagesPerVisit,
    loading: loading,
    error: error,
    moduleSlug: "analytics-4"
  });
}
PagesPerVisitWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_8__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__["default"]
})(PagesPerVisitWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/PopularAuthorsWidget.js":
/*!***************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/PopularAuthorsWidget.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @wordpress/compose */ "../node_modules/@wordpress/compose/build-module/higher-order/compose.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/KeyMetrics */ "./js/components/KeyMetrics/index.js");
/* harmony import */ var _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common */ "./js/modules/analytics-4/components/common/index.js");
/* harmony import */ var _js_modules_analytics_4_utils_withCustomDimensions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/withCustomDimensions */ "./js/modules/analytics-4/utils/withCustomDimensions.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * PopularAuthorsWidget component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */











/**
 * Gets the report options for the Popular Authors widget.
 *
 * @since 1.113.0
 *
 * @param {Function} select Data store 'select' function.
 * @return {Object} The report options.
 */

function getPopularAuthorsWidgetReportOptions(select) {
  const dates = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.DATE_RANGE_OFFSET
  });
  return {
    ...dates,
    dimensions: ['customEvent:googlesitekit_post_author'],
    dimensionFilters: {
      // Make sure that we select only rows without (not set) records.
      'customEvent:googlesitekit_post_author': {
        filterType: 'emptyFilter',
        notExpression: true
      }
    },
    metrics: [{
      name: 'screenPageViews'
    }],
    orderby: [{
      metric: {
        metricName: 'screenPageViews'
      },
      desc: true
    }],
    limit: 3,
    keepEmptyRows: false,
    reportID: 'analytics-4_popular-authors-widget_widget_reportOptions'
  };
}
function PopularAuthorsWidget(props) {
  const {
    Widget
  } = props;
  const reportOptions = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(getPopularAuthorsWidgetReportOptions);
  const report = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getReport(reportOptions), [reportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [reportOptions]));
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [reportOptions]));
  const {
    rows = []
  } = report || {};
  const columns = [{
    field: 'dimensionValues.0.value',
    Component({
      fieldValue
    }) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_4__.MetricTileTablePlainText, {
        content: fieldValue
      });
    }
  }, {
    field: 'metricValues.0.value',
    Component({
      fieldValue
    }) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)("strong", {
        children: (0,_js_util__WEBPACK_IMPORTED_MODULE_9__.numFmt)(fieldValue)
      });
    }
  }];
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_4__.MetricTileTable, {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_POPULAR_AUTHORS,
    loading: loading,
    rows: rows,
    columns: columns,
    ZeroState: _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_5__.ZeroDataMessage,
    error: error,
    moduleSlug: "analytics-4"
  });
}
PopularAuthorsWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_wordpress_compose__WEBPACK_IMPORTED_MODULE_12__["default"])((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_7__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_8__["default"]
}), (0,_js_modules_analytics_4_utils_withCustomDimensions__WEBPACK_IMPORTED_MODULE_6__["default"])({
  reportOptions: getPopularAuthorsWidgetReportOptions
}))(PopularAuthorsWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/PopularContentWidget.js":
/*!***************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/PopularContentWidget.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_13__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/KeyMetrics */ "./js/components/KeyMetrics/index.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common */ "./js/modules/analytics-4/components/common/index.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/* harmony import */ var _js_modules_analytics_4_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/modules/analytics-4/utils */ "./js/modules/analytics-4/utils/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * PopularContentWidget component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */













function PopularContentWidget(props) {
  const {
    Widget
  } = props;
  const viewOnlyDashboard = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_10__["default"])();
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.DATE_RANGE_OFFSET
  }));
  const reportOptions = {
    ...dates,
    dimensions: ['pagePath'],
    metrics: [{
      name: 'screenPageViews'
    }],
    orderby: [{
      metric: {
        metricName: 'screenPageViews'
      },
      desc: true
    }],
    limit: 3,
    keepEmptyRows: false,
    reportID: 'analytics-4_popular-content-widget_widget_reportOptions'
  };
  const report = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getReport(reportOptions), [reportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [reportOptions]));
  const titles = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => !error ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getPageTitles(report, reportOptions) : undefined, [error, report, reportOptions]);
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [reportOptions]) || titles === undefined);
  const {
    rows = []
  } = report || {};
  const columns = [{
    field: 'dimensionValues.0.value',
    Component({
      fieldValue
    }) {
      const url = fieldValue;
      const title = (0,_js_modules_analytics_4_utils__WEBPACK_IMPORTED_MODULE_11__.decodeAmpersand)(titles[url]);
      // Utilizing `useSelect` inside the component rather than
      // returning its direct value to the `columns` array.
      // This pattern ensures that the component re-renders correctly based on changes in state,
      // preventing potential issues with stale or out-of-sync data.
      // Note: This pattern is replicated in a few other spots within our codebase.
      const serviceURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
        return !viewOnlyDashboard ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getServiceReportURL('all-pages-and-screens', {
          filters: {
            unifiedPagePathScreen: url
          },
          dates
        }) : null;
      });
      if (viewOnlyDashboard) {
        return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_4__.MetricTileTablePlainText, {
          content: title
        });
      }
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_5__["default"], {
        href: serviceURL,
        title: title,
        external: true,
        hideExternalIndicator: true,
        children: title
      });
    }
  }, {
    field: 'metricValues.0.value',
    Component({
      fieldValue
    }) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)("strong", {
        children: (0,_js_util__WEBPACK_IMPORTED_MODULE_7__.numFmt)(fieldValue)
      });
    }
  }];
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_4__.MetricTileTable, {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_POPULAR_CONTENT,
    loading: loading,
    rows: rows,
    columns: columns,
    ZeroState: _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_6__.ZeroDataMessage,
    error: error,
    moduleSlug: "analytics-4"
  });
}
PopularContentWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_8__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__["default"]
})(PopularContentWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/PopularProductsWidget.js":
/*!****************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/PopularProductsWidget.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_19___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_19__);
/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @wordpress/compose */ "../node_modules/@wordpress/compose/build-module/higher-order/compose.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/create-interpolate-element.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/datastore/ui/constants */ "./js/googlesitekit/datastore/ui/constants.js");
/* harmony import */ var _js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/components/KeyMetrics/constants */ "./js/components/KeyMetrics/constants.js");
/* harmony import */ var _js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/components/KeyMetrics */ "./js/components/KeyMetrics/index.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/* harmony import */ var _js_modules_analytics_4_utils_withCustomDimensions__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/withCustomDimensions */ "./js/modules/analytics-4/utils/withCustomDimensions.js");
/* harmony import */ var _js_modules_analytics_4_utils__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/js/modules/analytics-4/utils */ "./js/modules/analytics-4/utils/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * PopularProductsWidget component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */
















/**
 * Gets the report options for the Popular Products widget.
 *
 * @since 1.127.0
 *
 * @param {Function} select Data store 'select' function.
 * @return {Object} The report options.
 */

function getPopularProductsWidgetReportOptions(select) {
  const dates = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.DATE_RANGE_OFFSET
  });
  const productPostType = select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_SITE).getProductPostType();
  return {
    ...dates,
    dimensions: ['pagePath'],
    dimensionFilters: {
      'customEvent:googlesitekit_post_type': {
        filterType: 'stringFilter',
        matchType: 'EXACT',
        value: productPostType
      }
    },
    metrics: [{
      name: 'screenPageViews'
    }],
    orderby: [{
      metric: {
        metricName: 'screenPageViews'
      },
      desc: true
    }],
    limit: 3,
    keepEmptyRows: false,
    reportID: 'analytics-4_popular-products-widget_widget_reportOptions'
  };
}
function PopularProductsWidget(props) {
  const {
    Widget,
    WidgetNull
  } = props;
  const viewOnlyDashboard = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_13__["default"])();
  const productPostType = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_SITE).getProductPostType());
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.DATE_RANGE_OFFSET
  }));
  const {
    setValue
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_ui_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_UI);
  const [showTooltip, setShowTooltip] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_17__.useState)(true);
  const openMetricsSelectionPanel = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_17__.useCallback)(() => {
    // Hide the tooltip so it doesn't remain visible, above the panel we're
    // opening.
    setShowTooltip(false);

    // Open the panel.
    setValue(_js_components_KeyMetrics_constants__WEBPACK_IMPORTED_MODULE_7__.KEY_METRICS_SELECTION_PANEL_OPENED_KEY, true);

    // Wait for the panel to be open before we re-enable the tooltip.
    // This prevents it from appearing above the slide-out panel, see:
    // https://github.com/google/site-kit-wp/issues/7060#issuecomment-1664827831
    setTimeout(() => {
      setShowTooltip(true);
    }, 0);
  }, [setValue]);
  const reportOptions = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(getPopularProductsWidgetReportOptions);
  const isPopularProductsWidgetActive = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.KM_ANALYTICS_POPULAR_PRODUCTS));
  const showWidget = isPopularProductsWidgetActive || productPostType;
  const report = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => showWidget ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getReport(reportOptions) : undefined, [showWidget, reportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [reportOptions]));
  const titles = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => !error && report ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getPageTitles(report, reportOptions) : undefined, [error, report, reportOptions]);
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => showWidget ? !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [reportOptions]) || titles === undefined : undefined);
  const {
    rows = []
  } = report || {};
  const columns = [{
    field: 'dimensionValues.0.value',
    Component({
      fieldValue
    }) {
      const url = fieldValue;
      const title = (0,_js_modules_analytics_4_utils__WEBPACK_IMPORTED_MODULE_15__.decodeAmpersand)(titles[url]);
      // Utilizing `useSelect` inside the component rather than
      // returning its direct value to the `columns` array.
      // This pattern ensures that the component re-renders correctly based on changes in state,
      // preventing potential issues with stale or out-of-sync data.
      // Note: This pattern is replicated in a few other spots within our codebase.
      const serviceURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
        return !viewOnlyDashboard ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getServiceReportURL('all-pages-and-screens', {
          filters: {
            unifiedPagePathScreen: url
          },
          dates
        }) : null;
      });
      if (viewOnlyDashboard) {
        return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_8__.MetricTileTablePlainText, {
          content: title
        });
      }
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_9__["default"], {
        href: serviceURL,
        title: title,
        external: true,
        hideExternalIndicator: true,
        children: title
      });
    }
  }, {
    field: 'metricValues.0.value',
    Component({
      fieldValue
    }) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsx)("strong", {
        children: (0,_js_util__WEBPACK_IMPORTED_MODULE_10__.numFmt)(fieldValue)
      });
    }
  }];
  if (!showWidget) {
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsx)(WidgetNull, {});
  }
  const infoTooltip = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_18__["default"])((0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Products on your site which visitors viewed the most. Site Kit detected these are your product pages. If this is inaccurate, you can <a>replace</a> this with another metric', 'google-site-kit'), {
    a: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_9__["default"], {
      onClick: openMetricsSelectionPanel
    })
  });
  let zeroStateMessage = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Analytics doesn’t have data for your site’s products yet', 'google-site-kit');
  if (!productPostType && isPopularProductsWidgetActive) {
    zeroStateMessage = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No product posts currently detected on your site. This metric applies only to sites with product posts.', 'google-site-kit');
  }
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_8__.MetricTileTable, {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.KM_ANALYTICS_POPULAR_PRODUCTS,
    loading: loading,
    rows: rows,
    columns: columns
    // Instead of sourcing the infoTooltip from KEY_METRICS_WIDGETS,
    // this widget provides it directly to the MetricTileTable component.
    // This is to accommodate a link behavior within the tooltip when the Metrics Selection Panel is open.
    ,
    infoTooltip: showTooltip ? infoTooltip : null,
    ZeroState: () => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_16__.jsx)("span", {
      children: zeroStateMessage
    }),
    error: error,
    moduleSlug: "analytics-4"
  });
}
PopularProductsWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_19___default().elementType).isRequired,
  WidgetNull: (prop_types__WEBPACK_IMPORTED_MODULE_19___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_wordpress_compose__WEBPACK_IMPORTED_MODULE_20__["default"])((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_11__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_12__["default"]
}), (0,_js_modules_analytics_4_utils_withCustomDimensions__WEBPACK_IMPORTED_MODULE_14__["default"])({
  reportOptions: getPopularProductsWidgetReportOptions
}))(PopularProductsWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/ReturningVisitorsWidget.js":
/*!******************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/ReturningVisitorsWidget.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/KeyMetrics */ "./js/components/KeyMetrics/index.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * ReturningVisitorsWidget component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */









function ReturningVisitorsWidget({
  Widget
}) {
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.DATE_RANGE_OFFSET,
    compare: true
  }));
  const reportOptions = {
    ...dates,
    dimensions: ['newVsReturning'],
    metrics: [{
      name: 'activeUsers'
    }],
    reportID: 'analytics-4_returning-visitors-widget_widget_reportOptions'
  };
  const report = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getReport(reportOptions), [reportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [reportOptions]));
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [reportOptions]));
  const {
    rows = [],
    totals = []
  } = report || {};
  function makeFind(dateRange) {
    return row => (0,lodash__WEBPACK_IMPORTED_MODULE_0__.get)(row, 'dimensionValues.0.value') === 'returning' && (0,lodash__WEBPACK_IMPORTED_MODULE_0__.get)(row, 'dimensionValues.1.value') === dateRange;
  }
  const returning = rows.find(makeFind('date_range_0'))?.metricValues?.[0]?.value || 0;
  const total = totals[0]?.metricValues?.[0]?.value || 0;
  const prevReturning = rows.find(makeFind('date_range_1'))?.metricValues?.[0]?.value || 0;
  const prevTotal = totals[1]?.metricValues?.[0]?.value || 0;
  const currentPercentage = total > 0 ? returning / total : 0;
  const prevPercentage = prevTotal > 0 ? prevReturning / prevTotal : 0;
  const format = {
    style: 'percent',
    signDisplay: 'never',
    maximumFractionDigits: 1
  };
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__.MetricTileNumeric, {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.KM_ANALYTICS_RETURNING_VISITORS,
    metricValue: currentPercentage,
    metricValueFormat: format,
    subText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.sprintf)(/* translators: %d: Number of total visitors visiting the site. */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('of %s total visitors', 'google-site-kit'), (0,_js_util__WEBPACK_IMPORTED_MODULE_7__.numFmt)(total, {
      style: 'decimal'
    })),
    previousValue: prevPercentage,
    currentValue: currentPercentage,
    loading: loading,
    error: error,
    moduleSlug: "analytics-4"
  });
}
ReturningVisitorsWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_8__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__["default"]
})(ReturningVisitorsWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/TopCategoriesWidget.js":
/*!**************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/TopCategoriesWidget.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_12__);
/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @wordpress/compose */ "../node_modules/@wordpress/compose/build-module/higher-order/compose.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common */ "./js/modules/analytics-4/components/common/index.js");
/* harmony import */ var _js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/KeyMetrics */ "./js/components/KeyMetrics/index.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _js_modules_analytics_4_utils_withCustomDimensions__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/withCustomDimensions */ "./js/modules/analytics-4/utils/withCustomDimensions.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var _js_modules_analytics_4_utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/modules/analytics-4/utils */ "./js/modules/analytics-4/utils/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * TopCategoriesWidget component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */












/**
 * Gets the report options for the Top Categories widget.
 *
 * @since 1.113.0
 *
 * @param {Function} select Data store 'select' function.
 * @return {Object} The report options.
 */

function getReportOptions(select) {
  const dates = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.DATE_RANGE_OFFSET
  });
  return {
    ...dates,
    dimensions: ['customEvent:googlesitekit_post_categories'],
    dimensionFilters: {
      // Make sure that we select only rows without (not set) records.
      'customEvent:googlesitekit_post_categories': {
        filterType: 'emptyFilter',
        notExpression: true
      }
    },
    metrics: [{
      name: 'screenPageViews'
    }],
    orderby: [{
      metric: {
        metricName: 'screenPageViews'
      },
      desc: true
    }],
    limit: 3,
    keepEmptyRows: false,
    reportID: 'analytics-4_top-categories-widget_widget_reportOptions'
  };
}
function TopCategoriesWidget({
  Widget
}) {
  const topCategoriesReportOptions = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(getReportOptions);
  const topCategoriesReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getReport(topCategoriesReportOptions), [topCategoriesReportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [topCategoriesReportOptions]));
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [topCategoriesReportOptions]));
  const {
    rows = []
  } = topCategoriesReport || {};
  const columns = [{
    field: 'dimensionValues',
    Component({
      fieldValue
    }) {
      const [categories] = fieldValue;
      const categoriesList = typeof categories?.value === 'string' ? (0,_js_modules_analytics_4_utils__WEBPACK_IMPORTED_MODULE_10__.splitCategories)(categories.value) : [];
      const categoriesString = (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.listFormat)(
      // All values _must_ be a string or format will throw an error.
      categoriesList.map(String), {
        style: 'narrow'
      });
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__.MetricTileTablePlainText, {
        content: categoriesString
      });
    }
  }, {
    field: 'metricValues.0.value',
    Component({
      fieldValue
    }) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("strong", {
        children: (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.numFmt)(fieldValue)
      });
    }
  }];
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__.MetricTileTable, {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_TOP_CATEGORIES,
    loading: loading,
    rows: rows,
    columns: columns,
    ZeroState: _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_5__.ZeroDataMessage,
    error: error,
    moduleSlug: "analytics-4"
  });
}
TopCategoriesWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_12___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_wordpress_compose__WEBPACK_IMPORTED_MODULE_13__["default"])((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_7__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__["default"]
}), (0,_js_modules_analytics_4_utils_withCustomDimensions__WEBPACK_IMPORTED_MODULE_8__["default"])({
  reportOptions: getReportOptions
}))(TopCategoriesWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/TopCitiesDrivingAddToCartWidget.js":
/*!**************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/TopCitiesDrivingAddToCartWidget.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common */ "./js/modules/analytics-4/components/common/index.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/KeyMetrics */ "./js/components/KeyMetrics/index.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * TopCitiesDrivingAddToCartWidget component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */










function TopCitiesDrivingAddToCartWidget({
  Widget
}) {
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.DATE_RANGE_OFFSET
  }));
  const detectedEvents = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getDetectedEvents());
  const hasRequiredEvent = detectedEvents?.includes('add_to_cart');
  const topCitiesReportOptions = {
    ...dates,
    dimensions: ['city'],
    dimensionFilters: {
      city: {
        filterType: 'emptyFilter',
        notExpression: true
      }
    },
    metrics: [{
      name: 'addToCarts'
    }],
    orderby: [{
      metric: {
        metricName: 'addToCarts'
      },
      desc: true
    }],
    limit: 3,
    keepEmptyRows: false,
    reportID: 'analytics-4_top-cities-driving-add-to-cart-widget_widget_topCitiesReportOptions'
  };
  const topCitiesReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => hasRequiredEvent ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getReport(topCitiesReportOptions) : undefined, [topCitiesReportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [topCitiesReportOptions]));
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => hasRequiredEvent ? !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [topCitiesReportOptions]) : undefined);
  const {
    rows = []
  } = topCitiesReport || {};
  const columns = [{
    field: 'dimensionValues',
    Component({
      fieldValue
    }) {
      const [title] = fieldValue;
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__.MetricTileTablePlainText, {
        content: title.value
      });
    }
  }, {
    field: 'metricValues.0.value',
    Component({
      fieldValue
    }) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("strong", {
        children: (0,_js_util__WEBPACK_IMPORTED_MODULE_5__.numFmt)(fieldValue)
      });
    }
  }];
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__.MetricTileTable, {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_TOP_CITIES_DRIVING_ADD_TO_CART,
    loading: loading,
    rows: rows,
    columns: columns,
    ZeroState: _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_4__.ZeroDataMessage,
    error: error,
    moduleSlug: "analytics-4"
  });
}
TopCitiesDrivingAddToCartWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_7__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_8__["default"]
})(TopCitiesDrivingAddToCartWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/TopCitiesDrivingLeadsWidget.js":
/*!**********************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/TopCitiesDrivingLeadsWidget.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common */ "./js/modules/analytics-4/components/common/index.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/KeyMetrics */ "./js/components/KeyMetrics/index.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * TopCitiesDrivingLeadsWidget component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */










function TopCitiesDrivingLeadsWidget({
  Widget
}) {
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.DATE_RANGE_OFFSET
  }));
  const detectedEvents = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getDetectedEvents());
  const eventNames = [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.ENUM_CONVERSION_EVENTS.SUBMIT_LEAD_FORM, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.ENUM_CONVERSION_EVENTS.CONTACT, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.ENUM_CONVERSION_EVENTS.GENERATE_LEAD].filter(item => detectedEvents?.includes(item));
  if (eventNames.includes(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.ENUM_CONVERSION_EVENTS.SUBMIT_LEAD_FORM) && eventNames.includes(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.ENUM_CONVERSION_EVENTS.CONTACT)) {
    eventNames.splice(eventNames.indexOf(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.ENUM_CONVERSION_EVENTS.CONTACT), 1);
  }
  const topCitiesReportOptions = {
    ...dates,
    dimensions: ['city', 'eventName'],
    dimensionFilters: {
      eventName: {
        filterType: 'inListFilter',
        value: eventNames
      },
      city: {
        filterType: 'emptyFilter',
        notExpression: true
      }
    },
    metrics: [{
      name: 'eventCount'
    }],
    orderby: [{
      metric: {
        metricName: 'eventCount'
      },
      desc: true
    }],
    limit: 3,
    keepEmptyRows: false,
    reportID: 'analytics-4_top-cities-driving-leads-widget_widget_topCitiesReportOptions'
  };
  const topCitiesReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => eventNames?.length ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getReport(topCitiesReportOptions) : undefined, [eventNames, topCitiesReportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [topCitiesReportOptions]));
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => eventNames?.length ? !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [topCitiesReportOptions]) : undefined);
  const {
    rows = []
  } = topCitiesReport || {};
  const columns = [{
    field: 'dimensionValues',
    Component({
      fieldValue
    }) {
      const [title] = fieldValue;
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__.MetricTileTablePlainText, {
        content: title.value
      });
    }
  }, {
    field: 'metricValues.0.value',
    Component({
      fieldValue
    }) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("strong", {
        children: (0,_js_util__WEBPACK_IMPORTED_MODULE_5__.numFmt)(fieldValue)
      });
    }
  }];
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__.MetricTileTable, {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_TOP_CITIES_DRIVING_LEADS,
    loading: loading,
    rows: rows,
    columns: columns,
    ZeroState: _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_4__.ZeroDataMessage,
    error: error,
    moduleSlug: "analytics-4"
  });
}
TopCitiesDrivingLeadsWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_7__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_8__["default"]
})(TopCitiesDrivingLeadsWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/TopCitiesDrivingPurchasesWidget.js":
/*!**************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/TopCitiesDrivingPurchasesWidget.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_10__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common */ "./js/modules/analytics-4/components/common/index.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/KeyMetrics */ "./js/components/KeyMetrics/index.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * TopCitiesDrivingPurchasesWidget component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */










function TopCitiesDrivingPurchasesWidget({
  Widget
}) {
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.DATE_RANGE_OFFSET
  }));
  const detectedEvents = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getDetectedEvents());
  const hasDetectedEvent = detectedEvents?.includes('purchase');
  const topCitiesReportOptions = {
    ...dates,
    dimensions: ['city'],
    dimensionFilters: {
      city: {
        filterType: 'emptyFilter',
        notExpression: true
      }
    },
    metrics: [{
      name: 'ecommercePurchases'
    }],
    metricFilters: {
      ecommercePurchases: {
        operation: 'GREATER_THAN',
        value: {
          int64Value: 0
        }
      }
    },
    orderby: [{
      metric: {
        metricName: 'ecommercePurchases'
      },
      desc: true
    }],
    limit: 3,
    keepEmptyRows: false,
    reportID: 'analytics-4_top-cities-driving-purchases-widget_widget_topCitiesReportOptions'
  };
  const topCitiesReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => hasDetectedEvent ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getReport(topCitiesReportOptions) : undefined, [hasDetectedEvent, topCitiesReportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [topCitiesReportOptions]));
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => hasDetectedEvent ? !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [topCitiesReportOptions]) : undefined);
  const {
    rows = []
  } = topCitiesReport || {};
  const columns = [{
    field: 'dimensionValues',
    Component({
      fieldValue
    }) {
      const [title] = fieldValue;
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__.MetricTileTablePlainText, {
        content: title.value
      });
    }
  }, {
    field: 'metricValues.0.value',
    Component({
      fieldValue
    }) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)("strong", {
        children: (0,_js_util__WEBPACK_IMPORTED_MODULE_5__.numFmt)(fieldValue)
      });
    }
  }];
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_9__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__.MetricTileTable, {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_TOP_CITIES_DRIVING_PURCHASES,
    loading: loading,
    rows: rows,
    columns: columns,
    ZeroState: _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_4__.ZeroDataMessage,
    error: error,
    moduleSlug: "analytics-4"
  });
}
TopCitiesDrivingPurchasesWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_10___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_7__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_8__["default"]
})(TopCitiesDrivingPurchasesWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/TopCitiesWidget.js":
/*!**********************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/TopCitiesWidget.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common */ "./js/modules/analytics-4/components/common/index.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/KeyMetrics */ "./js/components/KeyMetrics/index.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var _js_modules_analytics_4_utils_report_rows_with_set_values__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/report-rows-with-set-values */ "./js/modules/analytics-4/utils/report-rows-with-set-values.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * TopCitiesWidget component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */











function TopCitiesWidget({
  Widget
}) {
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.DATE_RANGE_OFFSET
  }));
  const topCitiesReportOptions = {
    ...dates,
    dimensions: ['city'],
    metrics: [{
      name: 'totalUsers'
    }],
    orderby: [{
      metric: {
        metricName: 'totalUsers'
      },
      desc: true
    }],
    limit: 4,
    reportID: 'analytics-4_top-cities-widget_widget_topCitiesReportOptions'
  };
  const topCitiesReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getReport(topCitiesReportOptions), [topCitiesReportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [topCitiesReportOptions]));
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [topCitiesReportOptions]));
  const {
    rows = [],
    totals = []
  } = topCitiesReport || {};
  const totalUsers = totals[0]?.metricValues?.[0]?.value;
  const columns = [{
    field: 'dimensionValues',
    Component({
      fieldValue
    }) {
      const [title] = fieldValue;
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__.MetricTileTablePlainText, {
        content: title.value
      });
    }
  }, {
    field: 'metricValues.0.value',
    Component({
      fieldValue
    }) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)("strong", {
        children: (0,_js_util__WEBPACK_IMPORTED_MODULE_5__.numFmt)(fieldValue / totalUsers, {
          style: 'percent',
          maximumFractionDigits: 1
        })
      });
    }
  }];
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__.MetricTileTable, {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_TOP_CITIES,
    loading: loading,
    rows: (0,_js_modules_analytics_4_utils_report_rows_with_set_values__WEBPACK_IMPORTED_MODULE_9__.reportRowsWithSetValues)(rows),
    columns: columns,
    ZeroState: _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_4__.ZeroDataMessage,
    error: error,
    moduleSlug: "analytics-4"
  });
}
TopCitiesWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_7__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_8__["default"]
})(TopCitiesWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/TopConvertingTrafficSourceWidget.js":
/*!***************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/TopConvertingTrafficSourceWidget.js ***!
  \***************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_hooks_useInViewSelect__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/hooks/useInViewSelect */ "./js/hooks/useInViewSelect.js");
/* harmony import */ var _js_components_KeyMetrics_MetricTileText__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/KeyMetrics/MetricTileText */ "./js/components/KeyMetrics/MetricTileText.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * TopConvertingTrafficSourceWidget component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */










function TopConvertingTrafficSourceWidget({
  Widget
}) {
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.DATE_RANGE_OFFSET,
    compare: true
  }));
  const reportOptions = {
    ...dates,
    dimensions: ['sessionDefaultChannelGroup'],
    metrics: [{
      name: 'sessionKeyEventRate'
    }],
    limit: 1,
    orderBy: 'sessionKeyEventRate',
    reportID: 'analytics-4_top-converting-traffic-source-widget_widget_reportOptions'
  };
  const report = (0,_js_hooks_useInViewSelect__WEBPACK_IMPORTED_MODULE_5__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getReport(reportOptions), [reportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [reportOptions]));
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [reportOptions]));
  function getRowForDateRange(dateRange) {
    if (!report?.rows) {
      return null;
    }

    // Filter the report to get only rows that match the given date range.
    const rows = report.rows.filter(({
      dimensionValues: [, dateValue]
    }) => dateValue.value === dateRange);

    // As the report is limited to 1 row per date range, return the first row.
    return rows[0];
  }
  const currentRow = getRowForDateRange('date_range_0');
  const previousRow = getRowForDateRange('date_range_1');
  const topChannelGroup = currentRow?.dimensionValues?.[0].value || '-';
  const topKeyEventRate = parseFloat(currentRow?.metricValues?.[0].value || '0');
  const previousTopKeyEventRate = parseFloat(previousRow?.metricValues?.[0].value || '0');
  const format = {
    style: 'percent',
    signDisplay: 'never',
    maximumFractionDigits: 1
  };
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_components_KeyMetrics_MetricTileText__WEBPACK_IMPORTED_MODULE_6__["default"], {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.KM_ANALYTICS_TOP_CONVERTING_TRAFFIC_SOURCE,
    metricValue: topChannelGroup,
    metricValueFormat: format,
    subText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %d: Percentage of visits that led to key events. */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('%s of visits led to key events', 'google-site-kit'), (0,_js_util__WEBPACK_IMPORTED_MODULE_7__.numFmt)(topKeyEventRate, format)),
    previousValue: previousTopKeyEventRate,
    currentValue: topKeyEventRate,
    loading: loading,
    error: error,
    moduleSlug: "analytics-4"
  });
}
TopConvertingTrafficSourceWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_8__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_4__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__["default"]
})(TopConvertingTrafficSourceWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/TopCountriesWidget.js":
/*!*************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/TopCountriesWidget.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common */ "./js/modules/analytics-4/components/common/index.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/KeyMetrics */ "./js/components/KeyMetrics/index.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var _js_modules_analytics_4_utils_report_rows_with_set_values__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/report-rows-with-set-values */ "./js/modules/analytics-4/utils/report-rows-with-set-values.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * TopCountriesWidget component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */











function TopCountriesWidget({
  Widget
}) {
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.DATE_RANGE_OFFSET
  }));
  const topCountriesReportOptions = {
    ...dates,
    dimensions: ['country'],
    metrics: [{
      name: 'totalUsers'
    }],
    orderby: [{
      metric: {
        metricName: 'totalUsers'
      },
      desc: true
    }],
    limit: 4,
    reportID: 'analytics-4_top-countries-widget_widget_topCountriesReportOptions'
  };
  const topCountriesReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getReport(topCountriesReportOptions), [topCountriesReportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [topCountriesReportOptions]));
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [topCountriesReportOptions]));
  const {
    rows = [],
    totals = []
  } = topCountriesReport || {};
  const totalUsers = totals[0]?.metricValues?.[0]?.value;
  const columns = [{
    field: 'dimensionValues',
    Component({
      fieldValue
    }) {
      const [title] = fieldValue;
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__.MetricTileTablePlainText, {
        content: title.value
      });
    }
  }, {
    field: 'metricValues.0.value',
    Component({
      fieldValue
    }) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)("strong", {
        children: (0,_js_util__WEBPACK_IMPORTED_MODULE_5__.numFmt)(fieldValue / totalUsers, {
          style: 'percent',
          maximumFractionDigits: 1
        })
      });
    }
  }];
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__.MetricTileTable, {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_TOP_COUNTRIES,
    loading: loading,
    rows: (0,_js_modules_analytics_4_utils_report_rows_with_set_values__WEBPACK_IMPORTED_MODULE_9__.reportRowsWithSetValues)(rows),
    columns: columns,
    ZeroState: _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_4__.ZeroDataMessage,
    error: error,
    moduleSlug: "analytics-4"
  });
}
TopCountriesWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_7__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_8__["default"]
})(TopCountriesWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/TopDeviceDrivingPurchasesWidget.js":
/*!**************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/TopDeviceDrivingPurchasesWidget.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_components_KeyMetrics_MetricTileText__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/KeyMetrics/MetricTileText */ "./js/components/KeyMetrics/MetricTileText.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * TopDeviceDrivingPurchases component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */










function TopDeviceDrivingPurchases({
  Widget
}) {
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.DATE_RANGE_OFFSET,
    compare: true
  }));
  const detectedEvents = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getDetectedEvents());
  const hasDetectedEvent = detectedEvents?.includes('purchase');
  const totalPurchasesReportOptions = {
    ...dates,
    metrics: [{
      name: 'ecommercePurchases'
    }],
    reportID: 'analytics-4_top-device-driving-purchases-widget_widget_totalPurchasesReportOptions'
  };
  const deviceReportOptions = {
    ...dates,
    dimensions: ['deviceCategory'],
    metrics: [{
      name: 'ecommercePurchases'
    }],
    limit: 1,
    orderBy: 'ecommercePurchases',
    reportID: 'analytics-4_top-device-driving-purchases-widget_widget_deviceReportOptions'
  };
  const totalPurchasesReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => hasDetectedEvent ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getReport(totalPurchasesReportOptions) : undefined, [hasDetectedEvent, totalPurchasesReportOptions]);

  // ecommercePurchases metric will always be assigned a value, unlike most
  // other metrics, where rows would be empty if there is no data, ecommercePurchases
  // will assign value `0` for each date range if there is no event data. So we need
  // to verify that value is non-zero for one of the rows, to allow report request for
  // traffic source. Otherwise zero data will be incorrectly displayed, showing zero for
  // purchases and comparison, but still include the traffic source.
  const hasPurchases = totalPurchasesReport?.rows ? totalPurchasesReport?.rows?.[0]?.metricValues?.[0]?.value > 0 || totalPurchasesReport?.rows?.[1]?.metricValues?.[0]?.value > 0 : false;
  const deviceReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => hasDetectedEvent && hasPurchases ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getReport(deviceReportOptions) : undefined, [hasPurchases, hasDetectedEvent, deviceReportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    const deviceReportErrors = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [deviceReportOptions]);
    const totalPurchasesReportErrors = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [totalPurchasesReportOptions]);
    if (deviceReportErrors && totalPurchasesReportErrors) {
      return [deviceReportErrors, totalPurchasesReportErrors];
    }
    return deviceReportErrors || totalPurchasesReportErrors || undefined;
  });
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => hasDetectedEvent && hasPurchases ? !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [totalPurchasesReportOptions]) || !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [deviceReportOptions]) : undefined);
  function makeFilter(dateRange, dimensionIndex) {
    return row => (0,lodash__WEBPACK_IMPORTED_MODULE_7__.get)(row, `dimensionValues.${dimensionIndex}.value`) === dateRange;
  }

  // Prevents running a filter on `report.rows` which could be undefined.
  const {
    rows: totalPurchasesReportRows = []
  } = totalPurchasesReport || {};
  const {
    rows: deviceReportRows = []
  } = deviceReport || {};
  const topDevice = deviceReportRows.filter(makeFilter('date_range_0', 1))[0]?.dimensionValues?.[0].value || '-';
  const currentTotalPurchases = parseInt(totalPurchasesReportRows.filter(makeFilter('date_range_0', 0))[0]?.metricValues?.[0]?.value, 10) || 0;
  const currentTopDevicePurchases = parseInt(deviceReportRows.filter(makeFilter('date_range_0', 1))[0]?.metricValues?.[0]?.value, 10) || 0;
  const relativeCurrentTopDevicePurchases = currentTotalPurchases ? currentTopDevicePurchases / currentTotalPurchases : 0;
  const previousTotalPurchases = parseInt(totalPurchasesReportRows.filter(makeFilter('date_range_1', 0))[0]?.metricValues?.[0]?.value, 10) || 0;
  const previousTopDevicePurchases = parseInt(deviceReportRows.filter(makeFilter('date_range_1', 1))[0]?.metricValues?.[0]?.value, 10) || 0;
  const relativePreviousTopDevicePurchases = previousTotalPurchases ? previousTopDevicePurchases / previousTotalPurchases : 0;
  const format = {
    style: 'percent',
    signDisplay: 'never',
    maximumFractionDigits: 1
  };
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_components_KeyMetrics_MetricTileText__WEBPACK_IMPORTED_MODULE_2__["default"], {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.KM_ANALYTICS_TOP_DEVICE_DRIVING_PURCHASES,
    metricValue: topDevice,
    metricValueFormat: format,
    subText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %d: Percentage of purchases for the current top device compared to the number of purchases for all devices. */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('%s of total purchases', 'google-site-kit'), (0,_js_util__WEBPACK_IMPORTED_MODULE_6__.numFmt)(relativeCurrentTopDevicePurchases, format)),
    previousValue: relativePreviousTopDevicePurchases,
    currentValue: relativeCurrentTopDevicePurchases,
    loading: loading,
    error: error,
    moduleSlug: "analytics-4"
  });
}
TopDeviceDrivingPurchases.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_8__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__["default"]
})(TopDeviceDrivingPurchases));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/TopPagesDrivingLeadsWidget.js":
/*!*********************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/TopPagesDrivingLeadsWidget.js ***!
  \*********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_13__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/KeyMetrics */ "./js/components/KeyMetrics/index.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common */ "./js/modules/analytics-4/components/common/index.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/* harmony import */ var _js_modules_analytics_4_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/modules/analytics-4/utils */ "./js/modules/analytics-4/utils/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * TopPagesDrivingLeadsWidget component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */













function TopPagesDrivingLeadsWidget(props) {
  const {
    Widget
  } = props;
  const viewOnlyDashboard = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_10__["default"])();
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.DATE_RANGE_OFFSET
  }));
  const detectedEvents = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getDetectedEvents());
  const eventNames = [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.ENUM_CONVERSION_EVENTS.SUBMIT_LEAD_FORM, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.ENUM_CONVERSION_EVENTS.CONTACT, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.ENUM_CONVERSION_EVENTS.GENERATE_LEAD].filter(item => detectedEvents?.includes(item));
  if (eventNames.includes(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.ENUM_CONVERSION_EVENTS.SUBMIT_LEAD_FORM) && eventNames.includes(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.ENUM_CONVERSION_EVENTS.CONTACT)) {
    eventNames.splice(eventNames.indexOf(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.ENUM_CONVERSION_EVENTS.CONTACT), 1);
  }
  const reportOptions = {
    ...dates,
    dimensions: ['pagePath', 'eventName'],
    dimensionFilters: {
      eventName: {
        filterType: 'inListFilter',
        value: eventNames
      }
    },
    metrics: [{
      name: 'eventCount'
    }],
    orderby: [{
      metric: {
        metricName: 'eventCount'
      },
      desc: true
    }],
    limit: 3,
    keepEmptyRows: false,
    reportID: 'analytics-4_top-pages-driving-leads-widget_widget_reportOptions'
  };
  const report = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => eventNames?.length ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getReport(reportOptions) : undefined, [eventNames, reportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [reportOptions]));
  const titles = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => {
    if (!eventNames?.length || error) {
      return undefined;
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getPageTitles(report, reportOptions);
  }, [eventNames, error, report, reportOptions]);
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    if (!eventNames?.length) {
      return undefined;
    }
    return !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [reportOptions]) || titles === undefined;
  });
  const {
    rows = []
  } = report || {};
  const columns = [{
    field: 'dimensionValues.0.value',
    Component({
      fieldValue
    }) {
      const url = fieldValue;
      const title = (0,_js_modules_analytics_4_utils__WEBPACK_IMPORTED_MODULE_11__.decodeAmpersand)(titles[url]);
      // Utilizing `useSelect` inside the component rather than
      // returning its direct value to the `columns` array.
      // This pattern ensures that the component re-renders correctly based on changes in state,
      // preventing potential issues with stale or out-of-sync data.
      // Note: This pattern is replicated in a few other spots within our codebase.
      const serviceURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
        return !viewOnlyDashboard ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getServiceReportURL('all-pages-and-screens', {
          filters: {
            unifiedPagePathScreen: url
          },
          dates
        }) : null;
      });
      if (viewOnlyDashboard) {
        return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_4__.MetricTileTablePlainText, {
          content: title
        });
      }
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_5__["default"], {
        href: serviceURL,
        title: title,
        external: true,
        hideExternalIndicator: true,
        children: title
      });
    }
  }, {
    field: 'metricValues.0.value',
    Component({
      fieldValue
    }) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)("strong", {
        children: (0,_js_util__WEBPACK_IMPORTED_MODULE_7__.numFmt)(fieldValue)
      });
    }
  }];
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_4__.MetricTileTable, {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_TOP_PAGES_DRIVING_LEADS,
    loading: loading,
    rows: rows,
    columns: columns,
    ZeroState: _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_6__.ZeroDataMessage,
    error: error,
    moduleSlug: "analytics-4"
  });
}
TopPagesDrivingLeadsWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_8__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__["default"]
})(TopPagesDrivingLeadsWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/TopRecentTrendingPagesWidget.js":
/*!***********************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/TopRecentTrendingPagesWidget.js ***!
  \***********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */   getDateRange: () => (/* binding */ getDateRange),
/* harmony export */   getReportOptions: () => (/* binding */ getReportOptions)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_14__);
/* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @wordpress/compose */ "../node_modules/@wordpress/compose/build-module/higher-order/compose.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/KeyMetrics */ "./js/components/KeyMetrics/index.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/* harmony import */ var _js_modules_analytics_4_utils_withCustomDimensions__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/withCustomDimensions */ "./js/modules/analytics-4/utils/withCustomDimensions.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/js/modules/analytics-4/utils */ "./js/modules/analytics-4/utils/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * TopRecentTrendingPagesWidget component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */













/**
 * Returns the date range (eg. the `startDate` and `endDate`) for this widget's
 * reporting options.
 *
 * @since 1.113.0
 * @since 1.132.0 Update the function to receive the reference date instead of the select function.
 *
 * @param {string} referenceDate The reference date.
 * @return {Object} An object containing the `startDate` and `endDate` for a
 * report.
 */

function getDateRange(referenceDate) {
  const yesterday = (0,_js_util__WEBPACK_IMPORTED_MODULE_5__.getPreviousDate)(referenceDate, 1);
  const threeDaysAgo = (0,_js_util__WEBPACK_IMPORTED_MODULE_5__.getPreviousDate)(referenceDate, 3);
  return {
    startDate: threeDaysAgo,
    endDate: yesterday
  };
}

/**
 * Generates the report options required for fetching data in
 * `topRecentTrendingPagesWidget`.
 *
 * The function utilizes the dates from the last three days to
 * prepare the filter and structure required for the report.
 *
 * This is defined as a function outside the component so that both
 * the component and the higher-order-component (`withCustomDimensions`)
 * can use it.
 *
 * @since 1.113.0
 * @since 1.132.0 Update the function to receive the reference date instead of the select function.
 *
 * @param {string} referenceDate The reference date.
 * @return {Object} The report options containing dimensions, filters,
 * metrics, and other parameters.
 */
function getReportOptions(referenceDate) {
  const yesterday = (0,_js_util__WEBPACK_IMPORTED_MODULE_5__.getPreviousDate)(referenceDate, 1);
  const twoDaysAgo = (0,_js_util__WEBPACK_IMPORTED_MODULE_5__.getPreviousDate)(referenceDate, 2);
  const threeDaysAgo = (0,_js_util__WEBPACK_IMPORTED_MODULE_5__.getPreviousDate)(referenceDate, 3);
  const dates = getDateRange(referenceDate);
  const reportOptions = {
    ...dates,
    dimensions: ['pagePath'],
    dimensionFilters: {
      'customEvent:googlesitekit_post_date': {
        filterType: 'inListFilter',
        value: [yesterday.replace(/-/g, ''), twoDaysAgo.replace(/-/g, ''), threeDaysAgo.replace(/-/g, '')]
      }
    },
    metrics: [{
      name: 'screenPageViews'
    }],
    orderby: [{
      metric: {
        metricName: 'screenPageViews'
      },
      desc: true
    }],
    limit: 3,
    keepEmptyRows: false,
    reportID: 'analytics-4_top-recent-trending-pages-widget_widget_reportOptions'
  };
  return reportOptions;
}
function CustomZeroDataMessage() {
  return (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('No data to display: either no pages were published in the last three days, or they haven’t received any visitors yet', 'google-site-kit');
}
function TopRecentTrendingPagesWidget({
  Widget
}) {
  const viewOnlyDashboard = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_9__["default"])();
  const [dates, reportOptions] = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    const referenceDate = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_11__.CORE_USER).getReferenceDate();
    return [getDateRange(referenceDate), getReportOptions(referenceDate)];
  });
  const report = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getReport(reportOptions), [reportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [reportOptions]));
  const titles = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => !error && report ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getPageTitles(report, reportOptions) : undefined, [error, report, reportOptions]);
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [reportOptions]) || titles === undefined);
  const {
    rows = []
  } = report || {};
  const columns = [{
    field: 'dimensionValues.0.value',
    Component({
      fieldValue
    }) {
      const url = fieldValue;
      const title = (0,_js_modules_analytics_4_utils__WEBPACK_IMPORTED_MODULE_12__.decodeAmpersand)(titles[url]);
      // Utilizing `useSelect` inside the component rather than
      // returning its direct value to the `columns` array.
      // This pattern ensures that the component re-renders correctly based on changes in state,
      // preventing potential issues with stale or out-of-sync data.
      // Note: This pattern is replicated in a few other spots within our codebase.
      const serviceURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
        return !viewOnlyDashboard ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getServiceReportURL('all-pages-and-screens', {
          filters: {
            unifiedPagePathScreen: url
          },
          dates
        }) : null;
      });
      if (viewOnlyDashboard) {
        return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__.MetricTileTablePlainText, {
          content: title
        });
      }
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_4__["default"], {
        href: serviceURL,
        title: title,
        external: true,
        hideExternalIndicator: true,
        children: title
      });
    }
  }, {
    field: 'metricValues.0.value',
    Component({
      fieldValue
    }) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)("strong", {
        children: (0,_js_util__WEBPACK_IMPORTED_MODULE_5__.numFmt)(fieldValue)
      });
    }
  }];
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_13__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__.MetricTileTable, {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_11__.KM_ANALYTICS_TOP_RECENT_TRENDING_PAGES,
    loading: loading,
    rows: rows,
    columns: columns,
    ZeroState: CustomZeroDataMessage,
    error: error,
    moduleSlug: "analytics-4"
  });
}
TopRecentTrendingPagesWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_14___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_wordpress_compose__WEBPACK_IMPORTED_MODULE_15__["default"])((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_7__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_8__["default"]
}), (0,_js_modules_analytics_4_utils_withCustomDimensions__WEBPACK_IMPORTED_MODULE_10__["default"])({
  reportOptions(select) {
    return getReportOptions(select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_11__.CORE_USER).getReferenceDate());
  }
}))(TopRecentTrendingPagesWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/TopReturningVisitorPages.js":
/*!*******************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/TopReturningVisitorPages.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_13__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/components/KeyMetrics */ "./js/components/KeyMetrics/index.js");
/* harmony import */ var _js_components_Link__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/Link */ "./js/components/Link.js");
/* harmony import */ var _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/components/common */ "./js/modules/analytics-4/components/common/index.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/* harmony import */ var _js_modules_analytics_4_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/modules/analytics-4/utils */ "./js/modules/analytics-4/utils/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * TopReturningVisitorPages component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */













function TopReturningVisitorPages(props) {
  const {
    Widget
  } = props;
  const viewOnlyDashboard = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_10__["default"])();
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.DATE_RANGE_OFFSET
  }));
  const reportOptions = {
    ...dates,
    dimensions: ['pagePath'],
    dimensionFilters: {
      newVsReturning: 'returning'
    },
    metrics: [{
      name: 'activeUsers'
    }],
    orderby: [{
      metric: {
        metricName: 'activeUsers'
      },
      desc: true
    }],
    limit: 3,
    keepEmptyRows: false,
    reportID: 'analytics-4_top-returning-visitor-pages-widget_widget_reportOptions'
  };
  const report = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getReport(reportOptions), [reportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [reportOptions]));
  const titles = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => !error ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getPageTitles(report, reportOptions) : undefined, [error, report, reportOptions]);
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [reportOptions]) || titles === undefined);
  const {
    rows = []
  } = report || {};
  const columns = [{
    field: 'dimensionValues.0.value',
    Component({
      fieldValue
    }) {
      const url = fieldValue;
      const title = (0,_js_modules_analytics_4_utils__WEBPACK_IMPORTED_MODULE_11__.decodeAmpersand)(titles[url]);
      // Utilizing `useSelect` inside the component rather than
      // returning its direct value to the `columns` array.
      // This pattern ensures that the component re-renders correctly based on changes in state,
      // preventing potential issues with stale or out-of-sync data.
      // Note: This pattern is replicated in a few other spots within our codebase.
      const serviceURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
        return !viewOnlyDashboard ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getServiceReportURL('all-pages-and-screens', {
          filters: {
            unifiedPagePathScreen: url
          },
          dates
        }) : null;
      });
      if (viewOnlyDashboard) {
        return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_4__.MetricTileTablePlainText, {
          content: title
        });
      }
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_js_components_Link__WEBPACK_IMPORTED_MODULE_5__["default"], {
        href: serviceURL,
        title: title,
        external: true,
        hideExternalIndicator: true,
        children: title
      });
    }
  }, {
    field: 'metricValues.0.value',
    Component({
      fieldValue
    }) {
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)("strong", {
        children: (0,_js_util__WEBPACK_IMPORTED_MODULE_7__.numFmt)(fieldValue)
      });
    }
  }];
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_12__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_4__.MetricTileTable, {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.KM_ANALYTICS_TOP_RETURNING_VISITOR_PAGES,
    loading: loading,
    rows: rows,
    columns: columns,
    ZeroState: _js_modules_analytics_4_components_common__WEBPACK_IMPORTED_MODULE_6__.ZeroDataMessage,
    error: error,
    moduleSlug: "analytics-4"
  });
}
TopReturningVisitorPages.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_13___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_8__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__["default"]
})(TopReturningVisitorPages));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/TopTrafficSourceDrivingAddToCartWidget.js":
/*!*********************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/TopTrafficSourceDrivingAddToCartWidget.js ***!
  \*********************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_components_KeyMetrics_MetricTileText__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/KeyMetrics/MetricTileText */ "./js/components/KeyMetrics/MetricTileText.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * TopTrafficSourceDrivingAddToCartWidget component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */










function TopTrafficSourceDrivingAddToCartWidget({
  Widget
}) {
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.DATE_RANGE_OFFSET,
    compare: true
  }));
  const detectedEvents = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getDetectedEvents());
  const hasDetectedEvent = detectedEvents?.includes(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.ENUM_CONVERSION_EVENTS.ADD_TO_CART);
  const totalAddToCartReportOptions = {
    ...dates,
    metrics: [{
      name: 'addToCarts'
    }],
    reportID: 'analytics-4_top-traffic-source-driving-add-to-cart-widget_widget_totalAddToCartReportOptions'
  };
  const trafficSourceReportOptions = {
    ...dates,
    dimensions: ['sessionDefaultChannelGroup'],
    metrics: [{
      name: 'addToCarts'
    }],
    limit: 1,
    orderBy: 'addToCarts',
    reportID: 'analytics-4_top-traffic-source-driving-add-to-cart-widget_widget_trafficSourceReportOptions'
  };
  const totalAddToCartReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => hasDetectedEvent ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getReport(totalAddToCartReportOptions) : undefined, [hasDetectedEvent, totalAddToCartReportOptions]);
  const trafficSourceReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => hasDetectedEvent ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getReport(trafficSourceReportOptions) : undefined, [hasDetectedEvent, trafficSourceReportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    const trafficSourceReportErrors = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [trafficSourceReportOptions]);
    const totalAddToCartReportErrors = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [totalAddToCartReportOptions]);
    if (trafficSourceReportErrors && totalAddToCartReportErrors) {
      return [trafficSourceReportErrors, totalAddToCartReportErrors];
    }
    return trafficSourceReportErrors || totalAddToCartReportErrors || undefined;
  });
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => hasDetectedEvent ? !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [totalAddToCartReportOptions]) || !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [trafficSourceReportOptions]) : undefined);
  function makeFilter(dateRange, dimensionIndex) {
    return row => (0,lodash__WEBPACK_IMPORTED_MODULE_7__.get)(row, `dimensionValues.${dimensionIndex}.value`) === dateRange;
  }

  // Prevents running a filter on `report.rows` which could be undefined.
  const {
    rows: totalAddToCartReportRows = []
  } = totalAddToCartReport || {};
  const {
    rows: trafficSourceReportRows = []
  } = trafficSourceReport || {};
  const topTrafficSource = trafficSourceReportRows.filter(makeFilter('date_range_0', 1))[0]?.dimensionValues?.[0].value || '-';
  const currentTotalAddToCart = parseInt(totalAddToCartReportRows.filter(makeFilter('date_range_0', 0))[0]?.metricValues?.[0]?.value, 10) || 0;
  const currentTopTrafficSourceAddToCart = parseInt(trafficSourceReportRows.filter(makeFilter('date_range_0', 1))[0]?.metricValues?.[0]?.value, 10) || 0;
  const relativeCurrentTopTrafficSourceAddToCart = currentTotalAddToCart ? currentTopTrafficSourceAddToCart / currentTotalAddToCart : 0;
  const previousTotalAddToCart = parseInt(totalAddToCartReportRows.filter(makeFilter('date_range_1', 0))[0]?.metricValues?.[0]?.value, 10) || 0;
  const previousTopTrafficSourceAddToCart = parseInt(trafficSourceReportRows.filter(makeFilter('date_range_1', 1))[0]?.metricValues?.[0]?.value, 10) || 0;
  const relativePreviousTopTrafficSourceAddToCart = previousTotalAddToCart ? previousTopTrafficSourceAddToCart / previousTotalAddToCart : 0;
  const format = {
    style: 'percent',
    signDisplay: 'never',
    maximumFractionDigits: 1
  };
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_components_KeyMetrics_MetricTileText__WEBPACK_IMPORTED_MODULE_2__["default"], {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_ADD_TO_CART,
    metricValue: topTrafficSource,
    metricValueFormat: format,
    subText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: Percentage of add to carts for the current top traffic source compared to the number of total add to carts for all traffic sources. */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('%s of total add to carts', 'google-site-kit'), (0,_js_util__WEBPACK_IMPORTED_MODULE_6__.numFmt)(relativeCurrentTopTrafficSourceAddToCart, format)),
    previousValue: relativePreviousTopTrafficSourceAddToCart,
    currentValue: relativeCurrentTopTrafficSourceAddToCart,
    loading: loading,
    error: error,
    moduleSlug: "analytics-4"
  });
}
TopTrafficSourceDrivingAddToCartWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_8__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__["default"]
})(TopTrafficSourceDrivingAddToCartWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/TopTrafficSourceDrivingLeadsWidget.js":
/*!*****************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/TopTrafficSourceDrivingLeadsWidget.js ***!
  \*****************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_components_KeyMetrics_MetricTileText__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/KeyMetrics/MetricTileText */ "./js/components/KeyMetrics/MetricTileText.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * TopTrafficSourceDrivingLeadsWidget component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */










function getDateRangeIndex(reportRows, dateRangeSlug) {
  for (let rowIndex = 0; rowIndex < reportRows.length; rowIndex++) {
    const dimensionValues = reportRows?.[rowIndex]?.dimensionValues;
    const dimensionIndex = dimensionValues.findIndex(dimensionValue => dimensionValue.value === dateRangeSlug);
    if (dimensionIndex !== -1) {
      return dimensionIndex;
    }
  }
  return 0;
}
function TopTrafficSourceDrivingLeadsWidget({
  Widget
}) {
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.DATE_RANGE_OFFSET,
    compare: true
  }));
  const detectedEvents = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getDetectedEvents());
  const eventNames = [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.ENUM_CONVERSION_EVENTS.SUBMIT_LEAD_FORM, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.ENUM_CONVERSION_EVENTS.CONTACT, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.ENUM_CONVERSION_EVENTS.GENERATE_LEAD].filter(item => detectedEvents?.includes(item));
  if (eventNames.includes(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.ENUM_CONVERSION_EVENTS.SUBMIT_LEAD_FORM) && eventNames.includes(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.ENUM_CONVERSION_EVENTS.CONTACT)) {
    eventNames.splice(eventNames.indexOf(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.ENUM_CONVERSION_EVENTS.CONTACT), 1);
  }
  const totalLeadsReportOptions = {
    ...dates,
    metrics: [{
      name: 'eventCount'
    }],
    dimensions: ['eventName'],
    dimensionFilters: {
      eventName: {
        filterType: 'inListFilter',
        value: eventNames
      }
    },
    reportID: 'analytics-4_top-traffic-source-driving-leads-widget_widget_totalLeadsReportOptions'
  };
  const trafficSourceReportOptions = {
    ...dates,
    dimensions: ['sessionDefaultChannelGroup', 'eventName'],
    dimensionFilters: {
      eventName: {
        filterType: 'inListFilter',
        value: eventNames
      }
    },
    metrics: [{
      name: 'eventCount'
    }],
    limit: 1,
    orderBy: 'eventCount',
    reportID: 'analytics-4_top-traffic-source-driving-leads-widget_widget_trafficSourceReportOptions'
  };
  const totalLeadsReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => eventNames.length ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getReport(totalLeadsReportOptions) : undefined, [eventNames, totalLeadsReportOptions]);
  const trafficSourceReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => eventNames.length ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getReport(trafficSourceReportOptions) : undefined, [eventNames, trafficSourceReportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    const trafficSourceReportErrors = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [trafficSourceReportOptions]);
    const totalLeadsReportErrors = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [totalLeadsReportOptions]);
    if (trafficSourceReportErrors && totalLeadsReportErrors) {
      return [trafficSourceReportErrors, totalLeadsReportErrors];
    }
    return trafficSourceReportErrors || totalLeadsReportErrors || undefined;
  });
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    if (!eventNames.length) {
      return undefined;
    }
    return !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [totalLeadsReportOptions]) || !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [trafficSourceReportOptions]);
  });
  function makeFilter(dateRange, dimensionIndex) {
    return row => {
      return (0,lodash__WEBPACK_IMPORTED_MODULE_7__.get)(row, `dimensionValues.${dimensionIndex}.value`) === dateRange;
    };
  }

  // Prevents running a filter on `report.rows` which could be undefined.
  const {
    rows: totalLeadsReportRows = []
  } = totalLeadsReport || {};
  const {
    rows: trafficSourceReportRows = []
  } = trafficSourceReport || {};
  const topTrafficSourceDateRangeIndex = getDateRangeIndex(trafficSourceReportRows, 'date_range_0');
  const topTrafficSource = trafficSourceReportRows.filter(makeFilter('date_range_0', topTrafficSourceDateRangeIndex))[0]?.dimensionValues?.[0].value || '-';
  const currentTotalLeadsDateRangeIndex = getDateRangeIndex(totalLeadsReportRows, 'date_range_0');
  const currentTotalLeads = parseInt(totalLeadsReportRows.filter(makeFilter('date_range_0', currentTotalLeadsDateRangeIndex))[0]?.metricValues?.[0]?.value, 10) || 0;
  const currentTopTrafficSourceLeadsDateRangeIndex = getDateRangeIndex(trafficSourceReportRows, 'date_range_0');
  const currentTopTrafficSourceLeads = parseInt(trafficSourceReportRows.filter(makeFilter('date_range_0', currentTopTrafficSourceLeadsDateRangeIndex))[0]?.metricValues?.[0]?.value, 10) || 0;
  const relativeCurrentTopTrafficSourceUsers = currentTotalLeads ? currentTopTrafficSourceLeads / currentTotalLeads : 0;
  const previousTotalLeadsDateRangeIndex = getDateRangeIndex(totalLeadsReportRows, 'date_range_1');
  const previousTotalLeads = parseInt(totalLeadsReportRows.filter(makeFilter('date_range_1', previousTotalLeadsDateRangeIndex))[0]?.metricValues?.[0]?.value, 10) || 0;
  const previousTopTrafficSourceUsersDateRangeIndex = getDateRangeIndex(trafficSourceReportRows, 'date_range_1');
  const previousTopTrafficSourceUsers = parseInt(trafficSourceReportRows.filter(makeFilter('date_range_1', previousTopTrafficSourceUsersDateRangeIndex))[0]?.metricValues?.[0]?.value, 10) || 0;
  const relativePreviousTopTrafficSourceUsers = previousTotalLeads ? previousTopTrafficSourceUsers / previousTotalLeads : 0;
  const format = {
    style: 'percent',
    signDisplay: 'never',
    maximumFractionDigits: 1
  };
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_components_KeyMetrics_MetricTileText__WEBPACK_IMPORTED_MODULE_2__["default"], {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_LEADS,
    metricValue: topTrafficSource,
    metricValueFormat: format,
    subText:
    // eslint-disable-next-line @wordpress/valid-sprintf
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %d: Percentage of leads for the current top traffic source compared to the number of total leads for all traffic sources. */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('%s of total leads', 'google-site-kit'), (0,_js_util__WEBPACK_IMPORTED_MODULE_6__.numFmt)(relativeCurrentTopTrafficSourceUsers, format)),
    previousValue: relativePreviousTopTrafficSourceUsers,
    currentValue: relativeCurrentTopTrafficSourceUsers,
    loading: loading,
    error: error,
    moduleSlug: "analytics-4"
  });
}
TopTrafficSourceDrivingLeadsWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_8__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__["default"]
})(TopTrafficSourceDrivingLeadsWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/TopTrafficSourceDrivingPurchasesWidget.js":
/*!*********************************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/TopTrafficSourceDrivingPurchasesWidget.js ***!
  \*********************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_components_KeyMetrics_MetricTileText__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/KeyMetrics/MetricTileText */ "./js/components/KeyMetrics/MetricTileText.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * TopTrafficSourceDrivingPurchasesWidget component.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */










function TopTrafficSourceDrivingPurchasesWidget({
  Widget
}) {
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.DATE_RANGE_OFFSET,
    compare: true
  }));
  const detectedEvents = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getDetectedEvents());
  const hasDetectedEvent = detectedEvents?.includes('purchase');
  const totalPurchasesReportOptions = {
    ...dates,
    metrics: [{
      name: 'ecommercePurchases'
    }],
    reportID: 'analytics-4_top-traffic-source-driving-purchases-widget_widget_totalPurchasesReportOptions'
  };
  const trafficSourceReportOptions = {
    ...dates,
    dimensions: ['sessionDefaultChannelGroup'],
    metrics: [{
      name: 'ecommercePurchases'
    }],
    limit: 1,
    orderBy: 'ecommercePurchases',
    reportID: 'analytics-4_top-traffic-source-driving-purchases-widget_widget_trafficSourceReportOptions'
  };
  const totalPurchasesReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => hasDetectedEvent ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getReport(totalPurchasesReportOptions) : undefined, [hasDetectedEvent, totalPurchasesReportOptions]);
  // ecommercePurchases metric will always be assigned a value, unlike most
  // other metrics, where rows would be empty if there is no data, ecommercePurchases
  // will assign value `0` for each date range if there is no event data. So we need
  // to verify that value is non-zero for one of the rows, to allow report request for
  // traffic source. Otherwise zero data will be incorrectly displayed, showing zero for
  // purchases and comparison, but still include the traffic source.
  const hasPurchases = totalPurchasesReport?.rows ? totalPurchasesReport?.rows?.[0]?.metricValues?.[0]?.value > 0 || totalPurchasesReport?.rows?.[1]?.metricValues?.[0]?.value > 0 : false;
  const trafficSourceReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => hasDetectedEvent && hasPurchases ? select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getReport(trafficSourceReportOptions) : undefined, [hasDetectedEvent, hasPurchases, trafficSourceReportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    const trafficSourceReportErrors = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [trafficSourceReportOptions]);
    const totalPurchasesReportErrors = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [totalPurchasesReportOptions]);
    if (trafficSourceReportErrors && totalPurchasesReportErrors) {
      return [trafficSourceReportErrors, totalPurchasesReportErrors];
    }
    return trafficSourceReportErrors || totalPurchasesReportErrors || undefined;
  });
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => hasDetectedEvent ? !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [totalPurchasesReportOptions]) || !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [trafficSourceReportOptions]) && hasPurchases : undefined);
  function makeFilter(dateRange, dimensionIndex) {
    return row => (0,lodash__WEBPACK_IMPORTED_MODULE_7__.get)(row, `dimensionValues.${dimensionIndex}.value`) === dateRange;
  }

  // Prevents running a filter on `report.rows` which could be undefined.
  const {
    rows: totalPurchasesReportRows = []
  } = totalPurchasesReport || {};
  const {
    rows: trafficSourceReportRows = []
  } = trafficSourceReport || {};
  const topTrafficSource = trafficSourceReportRows.filter(makeFilter('date_range_0', 1))[0]?.dimensionValues?.[0].value || '-';
  const currentTotalPurchases = parseInt(totalPurchasesReportRows.filter(makeFilter('date_range_0', 0))[0]?.metricValues?.[0]?.value, 10) || 0;
  const currentTopTrafficSourcePurchases = parseInt(trafficSourceReportRows.filter(makeFilter('date_range_0', 1))[0]?.metricValues?.[0]?.value, 10) || 0;
  const relativeCurrentTopTrafficSourcePurchases = currentTotalPurchases ? currentTopTrafficSourcePurchases / currentTotalPurchases : 0;
  const previousTotalPurchases = parseInt(totalPurchasesReportRows.filter(makeFilter('date_range_1', 0))[0]?.metricValues?.[0]?.value, 10) || 0;
  const previousTopTrafficSourcePurchases = parseInt(trafficSourceReportRows.filter(makeFilter('date_range_1', 1))[0]?.metricValues?.[0]?.value, 10) || 0;
  const relativePreviousTopTrafficSourcePurchases = previousTotalPurchases ? previousTopTrafficSourcePurchases / previousTotalPurchases : 0;
  const format = {
    style: 'percent',
    signDisplay: 'never',
    maximumFractionDigits: 1
  };
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_components_KeyMetrics_MetricTileText__WEBPACK_IMPORTED_MODULE_2__["default"], {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_PURCHASES,
    metricValue: topTrafficSource,
    metricValueFormat: format,
    subText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: Percentage of purchases for the current top traffic source compared to the number of total purchases for all traffic sources. */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('%s of total purchases', 'google-site-kit'), (0,_js_util__WEBPACK_IMPORTED_MODULE_6__.numFmt)(relativeCurrentTopTrafficSourcePurchases, format)),
    previousValue: relativePreviousTopTrafficSourcePurchases,
    currentValue: relativeCurrentTopTrafficSourcePurchases,
    loading: loading,
    error: error,
    moduleSlug: "analytics-4"
  });
}
TopTrafficSourceDrivingPurchasesWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_8__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__["default"]
})(TopTrafficSourceDrivingPurchasesWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/TopTrafficSourceWidget.js":
/*!*****************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/TopTrafficSourceWidget.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_components_KeyMetrics_MetricTileText__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/components/KeyMetrics/MetricTileText */ "./js/components/KeyMetrics/MetricTileText.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_7__);
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * TopTrafficSourceWidget component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */










function TopTrafficSourceWidget({
  Widget
}) {
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.DATE_RANGE_OFFSET,
    compare: true
  }));
  const totalUsersReportOptions = {
    ...dates,
    metrics: [{
      name: 'totalUsers'
    }],
    reportID: 'analytics-4_top-traffic-source-widget_widget_totalUsersReportOptions'
  };
  const trafficSourceReportOptions = {
    ...dates,
    dimensions: ['sessionDefaultChannelGroup'],
    metrics: [{
      name: 'totalUsers'
    }],
    limit: 1,
    orderBy: 'totalUsers',
    reportID: 'analytics-4_top-traffic-source-widget_widget_trafficSourceReportOptions'
  };
  const totalUsersReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getReport(totalUsersReportOptions), [totalUsersReportOptions]);
  const trafficSourceReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getReport(trafficSourceReportOptions), [trafficSourceReportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    const trafficSourceReportErrors = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [trafficSourceReportOptions]);
    const totalUsersReportErrors = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [totalUsersReportOptions]);
    if (trafficSourceReportErrors && totalUsersReportErrors) {
      return [trafficSourceReportErrors, totalUsersReportErrors];
    }
    return trafficSourceReportErrors || totalUsersReportErrors || undefined;
  });
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [totalUsersReportOptions]) || !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [trafficSourceReportOptions]));
  function makeFilter(dateRange, dimensionIndex) {
    return row => (0,lodash__WEBPACK_IMPORTED_MODULE_7__.get)(row, `dimensionValues.${dimensionIndex}.value`) === dateRange;
  }

  // Prevents running a filter on `report.rows` which could be undefined.
  const {
    rows: totalUsersReportRows = []
  } = totalUsersReport || {};
  const {
    rows: trafficSourceReportRows = []
  } = trafficSourceReport || {};
  const topTrafficSource = trafficSourceReportRows.filter(makeFilter('date_range_0', 1))[0]?.dimensionValues?.[0].value || '-';
  const currentTotalUsers = parseInt(totalUsersReportRows.filter(makeFilter('date_range_0', 0))[0]?.metricValues?.[0]?.value, 10) || 0;
  const currentTopTrafficSourceUsers = parseInt(trafficSourceReportRows.filter(makeFilter('date_range_0', 1))[0]?.metricValues?.[0]?.value, 10) || 0;
  const relativeCurrentTopTrafficSourceUsers = currentTotalUsers ? currentTopTrafficSourceUsers / currentTotalUsers : 0;
  const previousTotalUsers = parseInt(totalUsersReportRows.filter(makeFilter('date_range_1', 0))[0]?.metricValues?.[0]?.value, 10) || 0;
  const previousTopTrafficSourceUsers = parseInt(trafficSourceReportRows.filter(makeFilter('date_range_1', 1))[0]?.metricValues?.[0]?.value, 10) || 0;
  const relativePreviousTopTrafficSourceUsers = previousTotalUsers ? previousTopTrafficSourceUsers / previousTotalUsers : 0;
  const format = {
    style: 'percent',
    signDisplay: 'never',
    maximumFractionDigits: 1
  };
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_components_KeyMetrics_MetricTileText__WEBPACK_IMPORTED_MODULE_2__["default"], {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.KM_ANALYTICS_TOP_TRAFFIC_SOURCE,
    metricValue: topTrafficSource,
    metricValueFormat: format,
    subText:
    // eslint-disable-next-line @wordpress/valid-sprintf
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %d: Percentage of users for the current top traffic source compared to the number of total users for all traffic sources. */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('%s of total traffic', 'google-site-kit'), (0,_js_util__WEBPACK_IMPORTED_MODULE_6__.numFmt)(relativeCurrentTopTrafficSourceUsers, format)),
    previousValue: relativePreviousTopTrafficSourceUsers,
    currentValue: relativeCurrentTopTrafficSourceUsers,
    loading: loading,
    error: error,
    moduleSlug: "analytics-4"
  });
}
TopTrafficSourceWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_8__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__["default"]
})(TopTrafficSourceWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/VisitLengthWidget.js":
/*!************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/VisitLengthWidget.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/KeyMetrics */ "./js/components/KeyMetrics/index.js");
/* harmony import */ var _js_util_i18n__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util/i18n */ "./js/util/i18n.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * VisitLengthWidget component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */









function VisitLengthWidget({
  Widget
}) {
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.DATE_RANGE_OFFSET,
    compare: true
  }));
  const reportOptions = {
    ...dates,
    metrics: [{
      name: 'averageSessionDuration'
    }, {
      name: 'sessions'
    }],
    reportID: 'analytics-4_visit-length-widget_widget_reportOptions'
  };
  const report = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getReport(reportOptions), [reportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [reportOptions]));
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [reportOptions]));
  const {
    rows = []
  } = report || {};
  function makeFind(dateRange) {
    return row => (0,lodash__WEBPACK_IMPORTED_MODULE_0__.get)(row, 'dimensionValues.0.value') === dateRange;
  }
  const currentVisitLength = Number(rows.find(makeFind('date_range_0'))?.metricValues?.[0]?.value) || 0;
  const previousVisitLength = Number(rows.find(makeFind('date_range_1'))?.metricValues?.[0]?.value) || 0;
  const currentTotalSessions = Number(rows.find(makeFind('date_range_0'))?.metricValues?.[1]?.value) || 0;
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__.MetricTileNumeric, {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.KM_ANALYTICS_VISIT_LENGTH,
    metricValue: currentVisitLength,
    metricValueFormat: "s",
    subText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.sprintf)(/* translators: %s: Number of total page views. */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('%s total visits', 'google-site-kit'), (0,_js_util_i18n__WEBPACK_IMPORTED_MODULE_7__.numFmt)(currentTotalSessions, {
      style: 'decimal'
    })),
    previousValue: previousVisitLength,
    currentValue: currentVisitLength,
    loading: loading,
    error: error,
    moduleSlug: "analytics-4"
  });
}
VisitLengthWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_8__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_9__["default"]
})(VisitLengthWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/VisitsPerVisitorWidget.js":
/*!*****************************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/VisitsPerVisitorWidget.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_11__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/KeyMetrics */ "./js/components/KeyMetrics/index.js");
/* harmony import */ var _js_util_when_active__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util/when-active */ "./js/util/when-active.js");
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * VisitsPerVisitorWidget component.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */









function VisitsPerVisitorWidget({
  Widget
}) {
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.DATE_RANGE_OFFSET,
    compare: true
  }));
  const reportOptions = {
    ...dates,
    metrics: [{
      name: 'sessionsPerUser'
    }, {
      name: 'sessions'
    }],
    reportID: 'analytics-4_visits-per-visitor-widget_widget_reportOptions'
  };
  const report = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getReport(reportOptions), [reportOptions]);
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [reportOptions]));
  const loading = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.useSelect)(select => !select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [reportOptions]));
  const {
    rows = []
  } = report || {};
  function makeFind(dateRange) {
    return row => (0,lodash__WEBPACK_IMPORTED_MODULE_0__.get)(row, 'dimensionValues.0.value') === dateRange;
  }
  const currentVisitsPerVisitor = rows.find(makeFind('date_range_0'))?.metricValues?.[0]?.value || 0;
  const previousVisitsPerVisitor = rows.find(makeFind('date_range_1'))?.metricValues?.[0]?.value || 0;
  const currentTotalSessions = Number(rows.find(makeFind('date_range_0'))?.metricValues?.[1]?.value) || 0;
  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_10__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__.MetricTileNumeric, {
    Widget: Widget,
    widgetSlug: _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.KM_ANALYTICS_VISITS_PER_VISITOR,
    metricValue: currentVisitsPerVisitor,
    subText: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.sprintf)(/* translators: %d: Number of total visits to the site. */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('%s total visits', 'google-site-kit'), (0,_js_util__WEBPACK_IMPORTED_MODULE_9__.numFmt)(currentTotalSessions, {
      style: 'decimal'
    })),
    previousValue: Number(previousVisitsPerVisitor),
    currentValue: Number(currentVisitsPerVisitor),
    loading: loading,
    error: error,
    moduleSlug: "analytics-4"
  });
}
VisitsPerVisitorWidget.propTypes = {
  Widget: (prop_types__WEBPACK_IMPORTED_MODULE_11___default().elementType).isRequired
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_js_util_when_active__WEBPACK_IMPORTED_MODULE_7__["default"])({
  moduleName: _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4,
  FallbackComponent: _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_8__["default"]
})(VisitsPerVisitorWidget));

/***/ }),

/***/ "./js/modules/analytics-4/components/widgets/index.js":
/*!************************************************************!*\
  !*** ./js/modules/analytics-4/components/widgets/index.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   ConnectGA4CTATileWidget: () => (/* reexport safe */ _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_0__["default"]),
/* harmony export */   ConnectGA4CTAWidget: () => (/* reexport safe */ _ConnectGA4CTAWidget__WEBPACK_IMPORTED_MODULE_1__["default"]),
/* harmony export */   ConversionReportingNotificationCTAWidget: () => (/* reexport safe */ _ConversionReportingNotificationCTAWidget__WEBPACK_IMPORTED_MODULE_2__["default"]),
/* harmony export */   EngagedTrafficSourceWidget: () => (/* reexport safe */ _EngagedTrafficSourceWidget__WEBPACK_IMPORTED_MODULE_3__["default"]),
/* harmony export */   LeastEngagingPagesWidget: () => (/* reexport safe */ _LeastEngagingPagesWidget__WEBPACK_IMPORTED_MODULE_4__["default"]),
/* harmony export */   MostEngagingPagesWidget: () => (/* reexport safe */ _MostEngagingPagesWidget__WEBPACK_IMPORTED_MODULE_5__["default"]),
/* harmony export */   NewVisitorsWidget: () => (/* reexport safe */ _NewVisitorsWidget__WEBPACK_IMPORTED_MODULE_6__["default"]),
/* harmony export */   PagesPerVisitWidget: () => (/* reexport safe */ _PagesPerVisitWidget__WEBPACK_IMPORTED_MODULE_21__["default"]),
/* harmony export */   PopularAuthorsWidget: () => (/* reexport safe */ _PopularAuthorsWidget__WEBPACK_IMPORTED_MODULE_28__["default"]),
/* harmony export */   PopularContentWidget: () => (/* reexport safe */ _PopularContentWidget__WEBPACK_IMPORTED_MODULE_7__["default"]),
/* harmony export */   PopularProductsWidget: () => (/* reexport safe */ _PopularProductsWidget__WEBPACK_IMPORTED_MODULE_8__["default"]),
/* harmony export */   ReturningVisitorsWidget: () => (/* reexport safe */ _ReturningVisitorsWidget__WEBPACK_IMPORTED_MODULE_9__["default"]),
/* harmony export */   TopCategoriesWidget: () => (/* reexport safe */ _TopCategoriesWidget__WEBPACK_IMPORTED_MODULE_26__["default"]),
/* harmony export */   TopCitiesDrivingAddToCartWidget: () => (/* reexport safe */ _TopCitiesDrivingAddToCartWidget__WEBPACK_IMPORTED_MODULE_12__["default"]),
/* harmony export */   TopCitiesDrivingLeadsWidget: () => (/* reexport safe */ _TopCitiesDrivingLeadsWidget__WEBPACK_IMPORTED_MODULE_11__["default"]),
/* harmony export */   TopCitiesDrivingPurchasesWidget: () => (/* reexport safe */ _TopCitiesDrivingPurchasesWidget__WEBPACK_IMPORTED_MODULE_13__["default"]),
/* harmony export */   TopCitiesWidget: () => (/* reexport safe */ _TopCitiesWidget__WEBPACK_IMPORTED_MODULE_10__["default"]),
/* harmony export */   TopConvertingTrafficSourceWidget: () => (/* reexport safe */ _TopConvertingTrafficSourceWidget__WEBPACK_IMPORTED_MODULE_19__["default"]),
/* harmony export */   TopCountriesWidget: () => (/* reexport safe */ _TopCountriesWidget__WEBPACK_IMPORTED_MODULE_15__["default"]),
/* harmony export */   TopDeviceDrivingPurchasesWidget: () => (/* reexport safe */ _TopDeviceDrivingPurchasesWidget__WEBPACK_IMPORTED_MODULE_14__["default"]),
/* harmony export */   TopPagesDrivingLeadsWidget: () => (/* reexport safe */ _TopPagesDrivingLeadsWidget__WEBPACK_IMPORTED_MODULE_27__["default"]),
/* harmony export */   TopRecentTrendingPagesWidget: () => (/* reexport safe */ _TopRecentTrendingPagesWidget__WEBPACK_IMPORTED_MODULE_25__["default"]),
/* harmony export */   TopReturningVisitorPages: () => (/* reexport safe */ _TopReturningVisitorPages__WEBPACK_IMPORTED_MODULE_23__["default"]),
/* harmony export */   TopTrafficSourceDrivingAddToCartWidget: () => (/* reexport safe */ _TopTrafficSourceDrivingAddToCartWidget__WEBPACK_IMPORTED_MODULE_17__["default"]),
/* harmony export */   TopTrafficSourceDrivingLeadsWidget: () => (/* reexport safe */ _TopTrafficSourceDrivingLeadsWidget__WEBPACK_IMPORTED_MODULE_18__["default"]),
/* harmony export */   TopTrafficSourceDrivingPurchasesWidget: () => (/* reexport safe */ _TopTrafficSourceDrivingPurchasesWidget__WEBPACK_IMPORTED_MODULE_20__["default"]),
/* harmony export */   TopTrafficSourceWidget: () => (/* reexport safe */ _TopTrafficSourceWidget__WEBPACK_IMPORTED_MODULE_16__["default"]),
/* harmony export */   VisitLengthWidget: () => (/* reexport safe */ _VisitLengthWidget__WEBPACK_IMPORTED_MODULE_22__["default"]),
/* harmony export */   VisitsPerVisitorWidget: () => (/* reexport safe */ _VisitsPerVisitorWidget__WEBPACK_IMPORTED_MODULE_24__["default"])
/* harmony export */ });
/* harmony import */ var _ConnectGA4CTATileWidget__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ConnectGA4CTATileWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTATileWidget.js");
/* harmony import */ var _ConnectGA4CTAWidget__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ConnectGA4CTAWidget */ "./js/modules/analytics-4/components/widgets/ConnectGA4CTAWidget.js");
/* harmony import */ var _ConversionReportingNotificationCTAWidget__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ConversionReportingNotificationCTAWidget */ "./js/modules/analytics-4/components/widgets/ConversionReportingNotificationCTAWidget.js");
/* harmony import */ var _EngagedTrafficSourceWidget__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./EngagedTrafficSourceWidget */ "./js/modules/analytics-4/components/widgets/EngagedTrafficSourceWidget.js");
/* harmony import */ var _LeastEngagingPagesWidget__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./LeastEngagingPagesWidget */ "./js/modules/analytics-4/components/widgets/LeastEngagingPagesWidget.js");
/* harmony import */ var _MostEngagingPagesWidget__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./MostEngagingPagesWidget */ "./js/modules/analytics-4/components/widgets/MostEngagingPagesWidget.js");
/* harmony import */ var _NewVisitorsWidget__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./NewVisitorsWidget */ "./js/modules/analytics-4/components/widgets/NewVisitorsWidget.js");
/* harmony import */ var _PopularContentWidget__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./PopularContentWidget */ "./js/modules/analytics-4/components/widgets/PopularContentWidget.js");
/* harmony import */ var _PopularProductsWidget__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./PopularProductsWidget */ "./js/modules/analytics-4/components/widgets/PopularProductsWidget.js");
/* harmony import */ var _ReturningVisitorsWidget__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ReturningVisitorsWidget */ "./js/modules/analytics-4/components/widgets/ReturningVisitorsWidget.js");
/* harmony import */ var _TopCitiesWidget__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./TopCitiesWidget */ "./js/modules/analytics-4/components/widgets/TopCitiesWidget.js");
/* harmony import */ var _TopCitiesDrivingLeadsWidget__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./TopCitiesDrivingLeadsWidget */ "./js/modules/analytics-4/components/widgets/TopCitiesDrivingLeadsWidget.js");
/* harmony import */ var _TopCitiesDrivingAddToCartWidget__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./TopCitiesDrivingAddToCartWidget */ "./js/modules/analytics-4/components/widgets/TopCitiesDrivingAddToCartWidget.js");
/* harmony import */ var _TopCitiesDrivingPurchasesWidget__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./TopCitiesDrivingPurchasesWidget */ "./js/modules/analytics-4/components/widgets/TopCitiesDrivingPurchasesWidget.js");
/* harmony import */ var _TopDeviceDrivingPurchasesWidget__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./TopDeviceDrivingPurchasesWidget */ "./js/modules/analytics-4/components/widgets/TopDeviceDrivingPurchasesWidget.js");
/* harmony import */ var _TopCountriesWidget__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./TopCountriesWidget */ "./js/modules/analytics-4/components/widgets/TopCountriesWidget.js");
/* harmony import */ var _TopTrafficSourceWidget__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./TopTrafficSourceWidget */ "./js/modules/analytics-4/components/widgets/TopTrafficSourceWidget.js");
/* harmony import */ var _TopTrafficSourceDrivingAddToCartWidget__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./TopTrafficSourceDrivingAddToCartWidget */ "./js/modules/analytics-4/components/widgets/TopTrafficSourceDrivingAddToCartWidget.js");
/* harmony import */ var _TopTrafficSourceDrivingLeadsWidget__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./TopTrafficSourceDrivingLeadsWidget */ "./js/modules/analytics-4/components/widgets/TopTrafficSourceDrivingLeadsWidget.js");
/* harmony import */ var _TopConvertingTrafficSourceWidget__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./TopConvertingTrafficSourceWidget */ "./js/modules/analytics-4/components/widgets/TopConvertingTrafficSourceWidget.js");
/* harmony import */ var _TopTrafficSourceDrivingPurchasesWidget__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./TopTrafficSourceDrivingPurchasesWidget */ "./js/modules/analytics-4/components/widgets/TopTrafficSourceDrivingPurchasesWidget.js");
/* harmony import */ var _PagesPerVisitWidget__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./PagesPerVisitWidget */ "./js/modules/analytics-4/components/widgets/PagesPerVisitWidget.js");
/* harmony import */ var _VisitLengthWidget__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./VisitLengthWidget */ "./js/modules/analytics-4/components/widgets/VisitLengthWidget.js");
/* harmony import */ var _TopReturningVisitorPages__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./TopReturningVisitorPages */ "./js/modules/analytics-4/components/widgets/TopReturningVisitorPages.js");
/* harmony import */ var _VisitsPerVisitorWidget__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./VisitsPerVisitorWidget */ "./js/modules/analytics-4/components/widgets/VisitsPerVisitorWidget.js");
/* harmony import */ var _TopRecentTrendingPagesWidget__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./TopRecentTrendingPagesWidget */ "./js/modules/analytics-4/components/widgets/TopRecentTrendingPagesWidget.js");
/* harmony import */ var _TopCategoriesWidget__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./TopCategoriesWidget */ "./js/modules/analytics-4/components/widgets/TopCategoriesWidget.js");
/* harmony import */ var _TopPagesDrivingLeadsWidget__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./TopPagesDrivingLeadsWidget */ "./js/modules/analytics-4/components/widgets/TopPagesDrivingLeadsWidget.js");
/* harmony import */ var _PopularAuthorsWidget__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./PopularAuthorsWidget */ "./js/modules/analytics-4/components/widgets/PopularAuthorsWidget.js");
/**
 * GA4 Key Metrics widget components.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */































/***/ }),

/***/ "./js/modules/analytics-4/constants.js":
/*!*********************************************!*\
  !*** ./js/modules/analytics-4/constants.js ***!
  \*********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   ACTIVATION_ACKNOWLEDGEMENT_TOOLTIP_STATE_KEY: () => (/* binding */ ACTIVATION_ACKNOWLEDGEMENT_TOOLTIP_STATE_KEY),
/* harmony export */   ACTIVATION_STEP_IN_PROGRESS: () => (/* binding */ ACTIVATION_STEP_IN_PROGRESS),
/* harmony export */   ACTIVATION_STEP_REMINDER: () => (/* binding */ ACTIVATION_STEP_REMINDER),
/* harmony export */   ACTIVATION_STEP_SETUP: () => (/* binding */ ACTIVATION_STEP_SETUP),
/* harmony export */   ACTIVATION_STEP_SUCCESS: () => (/* binding */ ACTIVATION_STEP_SUCCESS),
/* harmony export */   ENHANCED_MEASUREMENT_ACTIVATION_BANNER_TOOLTIP_STATE_KEY: () => (/* binding */ ENHANCED_MEASUREMENT_ACTIVATION_BANNER_TOOLTIP_STATE_KEY),
/* harmony export */   GA4_ACTIVATION_BANNER_STATE_KEY: () => (/* binding */ GA4_ACTIVATION_BANNER_STATE_KEY),
/* harmony export */   GA4_AUTO_SWITCH_DATE: () => (/* binding */ GA4_AUTO_SWITCH_DATE),
/* harmony export */   KM_CONNECT_GA4_CTA_WIDGET_DISMISSED_ITEM_KEY: () => (/* binding */ KM_CONNECT_GA4_CTA_WIDGET_DISMISSED_ITEM_KEY),
/* harmony export */   LEGACY_ENHANCED_MEASUREMENT_ACTIVATION_BANNER_DISMISSED_ITEM_KEY: () => (/* binding */ LEGACY_ENHANCED_MEASUREMENT_ACTIVATION_BANNER_DISMISSED_ITEM_KEY),
/* harmony export */   MODULE_SLUG_ANALYTICS_4: () => (/* binding */ MODULE_SLUG_ANALYTICS_4),
/* harmony export */   REPORT_ARGS_DATA_FILTERS_KEY: () => (/* binding */ REPORT_ARGS_DATA_FILTERS_KEY),
/* harmony export */   REPORT_ARGS_NAV_KEY: () => (/* binding */ REPORT_ARGS_NAV_KEY),
/* harmony export */   REPORT_ARGS_SELECTED_DIMENSION_KEY: () => (/* binding */ REPORT_ARGS_SELECTED_DIMENSION_KEY),
/* harmony export */   REPORT_ARGS_SELECTED_METRIC_KEY: () => (/* binding */ REPORT_ARGS_SELECTED_METRIC_KEY)
/* harmony export */ });
/**
 * GA4 module constants.
 *
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const ACTIVATION_STEP_REMINDER = 0;
const ACTIVATION_STEP_SETUP = 1;
const ACTIVATION_STEP_SUCCESS = 2;
const ACTIVATION_STEP_IN_PROGRESS = 3;
const ACTIVATION_ACKNOWLEDGEMENT_TOOLTIP_STATE_KEY = 'activation-acknowledgement-tooltip-state';
const GA4_ACTIVATION_BANNER_STATE_KEY = 'ga4-activation-banner-state';
const ENHANCED_MEASUREMENT_ACTIVATION_BANNER_TOOLTIP_STATE_KEY = 'enhanced-measurement-activation-banner-tooltip-state';
const LEGACY_ENHANCED_MEASUREMENT_ACTIVATION_BANNER_DISMISSED_ITEM_KEY = 'enhanced-measurement-activation-banner-dismissed-item';
const REPORT_ARGS_SELECTED_METRIC_KEY = '_r.explorerCard..selmet';
const REPORT_ARGS_SELECTED_DIMENSION_KEY = '_r.explorerCard..seldim';
const REPORT_ARGS_DATA_FILTERS_KEY = '_r..dataFilters';
const REPORT_ARGS_NAV_KEY = '_r..nav';
const KM_CONNECT_GA4_CTA_WIDGET_DISMISSED_ITEM_KEY = 'key-metrics-connect-ga4-cta-widget';

/**
 * Date that Site Kit will automatically switch to using GA4: September 25, 2023.
 *
 * With Site Kit's maximum date range being three months, once this period has passed since the UA cutoff date,
 * it will no longer be able to show any historical data for UA and will automatically switch to GA4.
 * For operational reasons, we automatically make the switch a few days before the three month cutoff point.
 *
 * @since 1.107.0
 * @see UA_CUTOFF_DATE.
 */
const GA4_AUTO_SWITCH_DATE = '2023-09-25';
const MODULE_SLUG_ANALYTICS_4 = 'analytics-4';

/***/ }),

/***/ "./js/modules/analytics-4/data-requirements/index.js":
/*!***********************************************************!*\
  !*** ./js/modules/analytics-4/data-requirements/index.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   requireAudienceSegmentationSetupCompleted: () => (/* binding */ requireAudienceSegmentationSetupCompleted),
/* harmony export */   requireAudienceSegmentationSetupCompletedByUser: () => (/* binding */ requireAudienceSegmentationSetupCompletedByUser),
/* harmony export */   requireDataIsAvailableOnLoad: () => (/* binding */ requireDataIsAvailableOnLoad),
/* harmony export */   requireEnhancedMeasurementEnabled: () => (/* binding */ requireEnhancedMeasurementEnabled),
/* harmony export */   requireMismatchedGoogleTag: () => (/* binding */ requireMismatchedGoogleTag),
/* harmony export */   requireWebDataStreamUnavailable: () => (/* binding */ requireWebDataStreamUnavailable)
/* harmony export */ });
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/**
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */




/**
 * Returns a function that checks if data is available on load.
 *
 * @since 1.166.0
 *
 * @return {function(WPDataRegistry): boolean} Whether data is available on load or not.
 */
function requireDataIsAvailableOnLoad() {
  return ({
    select
  }) => true === select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).isDataAvailableOnLoad();
}

/**
 * Returns a function that checks if audience segmentation setup is completed.
 *
 * @since 1.166.0
 *
 * @return {function(WPDataRegistry): Promise<boolean>} Whether setup is completed or not.
 */
function requireAudienceSegmentationSetupCompleted() {
  return async ({
    select,
    resolveSelect
  }) => {
    await resolveSelect(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getAudienceSettings();
    return !!select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getAudienceSegmentationSetupCompletedBy();
  };
}

/**
 * Returns a function that checks if audience segmentation setup was completed by the current user.
 *
 * @since 1.166.0
 *
 * @return {function(WPDataRegistry): Promise<boolean>} Whether setup was completed by the current user or not.
 */
function requireAudienceSegmentationSetupCompletedByUser() {
  return async ({
    select,
    resolveSelect
  }) => {
    await Promise.all([
    // The getAudienceSegmentationSetupCompletedBy() selector relies
    // on the resolution of the getAudienceSettings() resolver.
    resolveSelect(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getAudienceSettings(),
    // The getID() selector relies on the resolution
    // of the getUser() resolver.
    resolveSelect(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).getUser()]);
    const userID = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).getID();
    const setupCompletedBy = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getAudienceSegmentationSetupCompletedBy();
    return setupCompletedBy === userID;
  };
}

/**
 * Returns a function that checks if the connected web datastream is not available.
 *
 * @since 1.166.0
 *
 * @return {function(WPDataRegistry): Promise<boolean>} `true` if the connected web datastream is not available, otherwise `false`.
 */
function requireWebDataStreamUnavailable() {
  return async ({
    select,
    resolveSelect
  }) => {
    await resolveSelect(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getModuleData();
    return true === select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).isWebDataStreamUnavailable();
  };
}

/**
 * Returns a function that checks if the connected Google tag ID is mismatched.
 *
 * @since 1.166.0
 *
 * @return {function(WPDataRegistry): Promise<boolean>} Whether the connected Google tag is mismatched or not.
 */
function requireMismatchedGoogleTag() {
  return async ({
    select,
    resolveSelect
  }) => {
    await resolveSelect(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getModuleData();
    return true === select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasMismatchedGoogleTagID();
  };
}

/**
 * Returns a function that checks if enhanced measurement is enabled for the connected web datastream.
 *
 * @since 1.166.0
 *
 * @return {function(WPDataRegistry): Promise<boolean>} Whether enhanced measurement is enabled or not.
 */
function requireEnhancedMeasurementEnabled() {
  return async ({
    select,
    resolveSelect
  }) => {
    const {
      isEnhancedMeasurementStreamEnabled,
      getSettings
    } = resolveSelect(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4);
    const {
      getPropertyID,
      getWebDataStreamID
    } = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4);
    await getSettings();
    return true === (await isEnhancedMeasurementStreamEnabled(getPropertyID(), getWebDataStreamID()));
  };
}

/***/ }),

/***/ "./js/modules/analytics-4/datastore/accounts.js":
/*!******************************************************!*\
  !*** ./js/modules/analytics-4/datastore/accounts.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   actions: () => (/* binding */ actions),
/* harmony export */   controls: () => (/* binding */ controls),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */   initialState: () => (/* binding */ initialState),
/* harmony export */   reducer: () => (/* binding */ reducer),
/* harmony export */   resolvers: () => (/* binding */ resolvers),
/* harmony export */   selectors: () => (/* binding */ selectors)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-api */ "googlesitekit-api");
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/googlesitekit/data/create-fetch-store */ "./js/googlesitekit/data/create-fetch-store.js");
/* harmony import */ var _js_googlesitekit_data_create_error_store__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/googlesitekit/data/create-error-store */ "./js/googlesitekit/data/create-error-store.js");
/* harmony import */ var _js_googlesitekit_data_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/googlesitekit/data/utils */ "./js/googlesitekit/data/utils.js");
/* harmony import */ var _js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/validation */ "./js/modules/analytics-4/utils/validation.js");
/* harmony import */ var _js_util_case_insensitive_sort__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/util/case-insensitive-sort */ "./js/util/case-insensitive-sort.js");
/* harmony import */ var _js_modules_analytics_4_utils_account__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/account */ "./js/modules/analytics-4/utils/account.js");
/**
 * `modules/analytics-4` data store: accounts.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Internal dependencies
 */











const {
  receiveError,
  clearError,
  clearErrors
} = _js_googlesitekit_data_create_error_store__WEBPACK_IMPORTED_MODULE_8__.actions;
const fetchGetAccountSummariesStore = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_7__.createFetchStore)({
  baseName: 'getAccountSummaries',
  controlCallback({
    pageToken
  }) {
    return (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__.get)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_6__.MODULE_SLUG_ANALYTICS_4, 'account-summaries', {
      pageToken
    }, {
      useCache: false
    });
  },
  argsToParams: pageToken => {
    return {
      pageToken
    };
  },
  reducerCallback: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, response) => {
    state.accountSummaries = [...(state.accountSummaries || []), ...(0,_js_modules_analytics_4_utils_account__WEBPACK_IMPORTED_MODULE_12__.populateAccountSummaries)(response.accountSummaries || [])];
  })
});
const fetchCreateAccountStore = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_7__.createFetchStore)({
  baseName: 'createAccount',
  controlCallback: ({
    data
  }) => {
    return (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__.set)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_6__.MODULE_SLUG_ANALYTICS_4, 'create-account-ticket', data);
  },
  reducerCallback: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)(
  // eslint-disable-next-line sitekit/acronym-case
  (state, {
    accountTicketId: accountTicketID
  }) => {
    state.accountTicketID = accountTicketID;
  }),
  argsToParams: data => {
    return {
      data
    };
  },
  validateParams: ({
    data
  } = {}) => {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,lodash__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(data), 'data must be an object.');
  }
});

// Actions.
const START_SELECTING_ACCOUNT = 'START_SELECTING_ACCOUNT';
const FINISH_SELECTING_ACCOUNT = 'FINISH_SELECTING_ACCOUNT';
const RESET_ACCOUNT_SUMMARIES = 'RESET_ACCOUNT_SUMMARIES';
const RESET_ACCOUNT_SETTINGS = 'RESET_ACCOUNT_SETTINGS';
const SORT_ACCOUNT_SUMMARIES = 'SORT_ACCOUNT_SUMMARIES';
const baseInitialState = {
  accountSummaries: undefined,
  accountTicketID: undefined,
  finishedSelectingAccount: undefined
};
const baseActions = {
  /**
   * Resets the account summaries.
   *
   * @since 1.118.0
   *
   * @return {Object} Redux-style action.
   */
  *resetAccountSummaries() {
    const {
      dispatch
    } = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    yield {
      payload: {},
      type: RESET_ACCOUNT_SUMMARIES
    };
    return dispatch(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).invalidateResolutionForStoreSelector('getAccountSummaries');
  },
  /**
   * Resets the account settings.
   *
   * @since 1.138.0
   *
   * @return {Object} Redux-style action.
   */
  resetAccountSettings() {
    return {
      payload: {},
      type: RESET_ACCOUNT_SETTINGS
    };
  },
  /**
   * Creates a new Analytics (GA4) account.
   *
   * @since 1.98.0
   * @since 1.165.0 Add `showProgress` option.
   *
   * @param {Object}  [options={}]                 Optional options object.
   * @param {boolean} [options.showProgress=false] Whether to show the progress indicator.
   * @return {Object} Object with `response` and `error`.
   */
  *createAccount({
    showProgress = false
  } = {}) {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    const {
      getValue
    } = registry.select(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_FORMS);
    const data = {
      displayName: getValue(_constants__WEBPACK_IMPORTED_MODULE_5__.FORM_ACCOUNT_CREATE, 'accountName'),
      propertyName: getValue(_constants__WEBPACK_IMPORTED_MODULE_5__.FORM_ACCOUNT_CREATE, 'propertyName'),
      dataStreamName: getValue(_constants__WEBPACK_IMPORTED_MODULE_5__.FORM_ACCOUNT_CREATE, 'dataStreamName'),
      timezone: getValue(_constants__WEBPACK_IMPORTED_MODULE_5__.FORM_ACCOUNT_CREATE, 'timezone'),
      regionCode: getValue(_constants__WEBPACK_IMPORTED_MODULE_5__.FORM_ACCOUNT_CREATE, 'countryCode'),
      enhancedMeasurementStreamEnabled: getValue(_constants__WEBPACK_IMPORTED_MODULE_5__.FORM_ACCOUNT_CREATE, _constants__WEBPACK_IMPORTED_MODULE_5__.ENHANCED_MEASUREMENT_ENABLED),
      showProgress
    };
    yield clearError('createAccount', []);
    const {
      response,
      error
    } = yield fetchCreateAccountStore.actions.fetchCreateAccount(data);
    if (error) {
      yield receiveError(error, 'createAccount', []);
    }
    return {
      response,
      error
    };
  },
  /**
   * Sets the given account in the store.
   *
   * @since 1.119.0
   *
   * @param {string} accountID Analytics account ID.
   * @return {Object} A generator function.
   */
  selectAccount: (0,_js_googlesitekit_data_utils__WEBPACK_IMPORTED_MODULE_9__.createValidatedAction)(accountID => {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_10__.isValidAccountSelection)(accountID), 'A valid accountID is required to select.');
  }, function* (accountID) {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    const finishSelectingAccountAction = {
      type: FINISH_SELECTING_ACCOUNT,
      payload: {}
    };
    yield {
      type: START_SELECTING_ACCOUNT,
      payload: {}
    };
    yield clearErrors();
    registry.dispatch(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).setSettings({
      accountID,
      propertyID: '',
      webDataStreamID: ''
    });
    if (_constants__WEBPACK_IMPORTED_MODULE_5__.ACCOUNT_CREATE === accountID) {
      yield finishSelectingAccountAction;
      return;
    }
    yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(registry.dispatch(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).matchAndSelectProperty(accountID, _constants__WEBPACK_IMPORTED_MODULE_5__.PROPERTY_CREATE));
    yield finishSelectingAccountAction;
  }),
  /**
   * Finds a matching account summary.
   *
   * @since 1.118.0
   *
   * @return {Object|null} Matching account summary on success, otherwise NULL.
   */
  *findMatchedAccount() {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    const matchedProperty = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(registry.dispatch(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).findMatchedProperty());
    if (!matchedProperty) {
      return null;
    }
    const accountSummaries = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(registry.resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getAccountSummaries());
    const matchedAccount = accountSummaries.find(account => account.propertySummaries.some(({
      _id
    }) => _id === matchedProperty._id));
    return matchedAccount || null;
  },
  /**
   * Sorts account summaries.
   *
   * @since 1.147.0
   *
   * @return {Object} Redux-style action.
   */
  sortAccountSummaries() {
    return {
      type: SORT_ACCOUNT_SUMMARIES
    };
  }
};
const baseControls = {};

/**
 * Creates immer reducer.
 */
const baseReducer = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, {
  type
}) => {
  switch (type) {
    case START_SELECTING_ACCOUNT:
      state.finishedSelectingAccount = false;
      break;
    case FINISH_SELECTING_ACCOUNT:
      state.finishedSelectingAccount = true;
      break;
    case RESET_ACCOUNT_SUMMARIES:
      state.accountSummaries = undefined;
      break;
    case RESET_ACCOUNT_SETTINGS:
      state.settings.accountID = undefined;
      state.settings.propertyID = undefined;
      state.settings.measurementID = undefined;
      state.settings.webDataStreamID = undefined;
      break;
    case SORT_ACCOUNT_SUMMARIES:
      if (!state.accountSummaries?.length) {
        return;
      }
      state.accountSummaries = (0,_js_util_case_insensitive_sort__WEBPACK_IMPORTED_MODULE_11__.caseInsensitiveListSort)(state.accountSummaries, 'displayName');
  }
});
const baseResolvers = {
  *getAccountSummaries() {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    let nextPageToken = '';
    const summaries = registry.select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getAccountSummaries();

    // Fetch initial account summaries if they are undefined.
    if (summaries === undefined) {
      do {
        const {
          error,
          response
        } = yield fetchGetAccountSummariesStore.actions.fetchGetAccountSummaries(nextPageToken);
        nextPageToken = response?.nextPageToken || '';
        if (error) {
          break;
        }
      } while (nextPageToken);
    }
    yield baseActions.sortAccountSummaries();
  }
};
const baseSelectors = {
  /**
   * Gets account summaries.
   *
   * @since 1.32.0
   *
   * @param {Object} state Data store's state.
   * @return {Array.<Object>} Account summaries array.
   */
  getAccountSummaries(state) {
    return state.accountSummaries;
  },
  /**
   * Indicates whether account creation is currently in progress.
   *
   * @since 1.98.0
   *
   * @param {Object} state Data store's state.
   * @return {boolean} True if an account is being created, false otherwise.
   */
  isDoingCreateAccount(state) {
    // Since isFetchingCreateAccount (via createFetchStore)
    // holds information based on specific values but we only need
    // generic information here, we need to check whether ANY such
    // request is in progress.
    return Object.values(state.isFetchingCreateAccount).some(Boolean);
  },
  /**
   * Get the terms of service URL.
   *
   * @since 1.98.0
   *
   * @param {Object} state Data store's state.
   * @return {(string|undefined)} The terms of service URL.
   */
  getAccountTicketTermsOfServiceURL: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => state => {
    const {
      accountTicketID
    } = state;
    if (accountTicketID === undefined) {
      return undefined;
    }
    const termsOfServiceURL = select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getServiceURL({
      path: `/termsofservice/${accountTicketID}`,
      query: {
        provisioningSignup: 'false'
      }
    });
    if (!termsOfServiceURL) {
      return undefined;
    }
    return termsOfServiceURL;
  }),
  /**
   * Whether or not the account create form is valid to submit.
   *
   * @since 1.98.0
   * @private
   *
   * @return {boolean} True if valid, otherwise false.
   */
  canSubmitAccountCreate: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => () => {
    const {
      getValue
    } = select(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_FORMS);
    if (!getValue(_constants__WEBPACK_IMPORTED_MODULE_5__.FORM_ACCOUNT_CREATE, 'accountName')) {
      return false;
    }
    if (!getValue(_constants__WEBPACK_IMPORTED_MODULE_5__.FORM_ACCOUNT_CREATE, 'propertyName')) {
      return false;
    }
    if (!getValue(_constants__WEBPACK_IMPORTED_MODULE_5__.FORM_ACCOUNT_CREATE, 'dataStreamName')) {
      return false;
    }
    if (!getValue(_constants__WEBPACK_IMPORTED_MODULE_5__.FORM_ACCOUNT_CREATE, 'timezone')) {
      return false;
    }
    if (!getValue(_constants__WEBPACK_IMPORTED_MODULE_5__.FORM_ACCOUNT_CREATE, 'countryCode')) {
      return false;
    }
    return true;
  }),
  /**
   * Determines whether the account selection process has finished or not.
   *
   * @since 1.119.0
   *
   * @param {Object} state Data store's state.
   * @return {boolean|undefined} Initially undefined, TRUE if the account selection process has finished, otherwise FALSE.
   */
  hasFinishedSelectingAccount(state) {
    return state.finishedSelectingAccount;
  }
};
const store = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.combineStores)(fetchGetAccountSummariesStore, fetchCreateAccountStore, {
  initialState: baseInitialState,
  actions: baseActions,
  controls: baseControls,
  reducer: baseReducer,
  resolvers: baseResolvers,
  selectors: baseSelectors
});
const initialState = store.initialState;
const actions = store.actions;
const controls = store.controls;
const reducer = store.reducer;
const resolvers = store.resolvers;
const selectors = store.selectors;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (store);

/***/ }),

/***/ "./js/modules/analytics-4/datastore/audience-settings.js":
/*!***************************************************************!*\
  !*** ./js/modules/analytics-4/datastore/audience-settings.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   actions: () => (/* binding */ actions),
/* harmony export */   controls: () => (/* binding */ controls),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */   initialState: () => (/* binding */ initialState),
/* harmony export */   reducer: () => (/* binding */ reducer),
/* harmony export */   resolvers: () => (/* binding */ resolvers),
/* harmony export */   selectors: () => (/* binding */ selectors)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-api */ "googlesitekit-api");
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/data/create-fetch-store */ "./js/googlesitekit/data/create-fetch-store.js");
/* harmony import */ var _js_googlesitekit_data_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/googlesitekit/data/utils */ "./js/googlesitekit/data/utils.js");
/* harmony import */ var _js_googlesitekit_data_create_error_store__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/googlesitekit/data/create-error-store */ "./js/googlesitekit/data/create-error-store.js");
/**
 * `modules/analytics-4` data store: audience settings.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Internal dependencies
 */







const {
  receiveError,
  clearError
} = _js_googlesitekit_data_create_error_store__WEBPACK_IMPORTED_MODULE_8__.actions;

/**
 * Validates audience settings.
 *
 * @since 1.148.0
 *
 * @param {Object} audienceSettings Audience settings to validate.
 * @return {void}
 */
function validateAudienceSettings(audienceSettings) {
  invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,lodash__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(audienceSettings), 'audienceSettings should be an object.');
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(Array.isArray(audienceSettings.availableAudiences), 'availableAudiences should be an array.');
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(typeof audienceSettings.audienceSegmentationSetupCompletedBy === 'number', 'audienceSegmentationSetupCompletedBy should be an integer.');
}
const fetchStoreReducerCallback = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, settings) => {
  state.audienceSettings = settings;
});
const fetchGetAudienceSettingsStore = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_6__.createFetchStore)({
  baseName: 'getAudienceSettings',
  controlCallback() {
    return (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__.get)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4, 'audience-settings', {}, {
      useCache: false
    });
  },
  reducerCallback: fetchStoreReducerCallback
});
const fetchSaveAudienceSettingsStore = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_6__.createFetchStore)({
  baseName: 'saveAudienceSettings',
  controlCallback: settings => (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__.set)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4, 'save-audience-settings', {
    settings
  }),
  reducerCallback: fetchStoreReducerCallback,
  argsToParams: settings => settings,
  validateParams: validateAudienceSettings
});
const fetchSyncAvailableAudiencesStore = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_6__.createFetchStore)({
  baseName: 'syncAvailableAudiences',
  controlCallback: () => (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__.set)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4, 'sync-audiences'),
  reducerCallback: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, audiences) => {
    if (!state.audienceSettings) {
      state.audienceSettings = {};
    }
    state.audienceSettings.availableAudiences = audiences;
  })
});

// Actions
const SET_AVAILABLE_AUDIENCES = 'SET_AVAILABLE_AUDIENCES';
const SET_AUDIENCE_SEGMENTATION_SETUP_COMPLETED_BY = 'SET_AUDIENCE_SEGMENTATION_SETUP_COMPLETED_BY';
const baseInitialState = {
  audienceSettings: undefined
};
const baseActions = {
  /**
   * Sets the available audiences.
   *
   * @since 1.148.0
   *
   * @param {Array} availableAudiences Available audience resource names.
   * @return {Object} Redux-style action.
   */
  setAvailableAudiences(availableAudiences) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(Array.isArray(availableAudiences), 'Available audiences should be an array.');
    return {
      type: SET_AVAILABLE_AUDIENCES,
      payload: {
        availableAudiences
      }
    };
  },
  /**
   * Sets the user who set up Audience Segmentation.
   *
   * @since 1.148.0
   *
   * @param {number} audienceSegmentationSetupCompletedBy ID for the user who set up Audience Segmentation.
   * @return {Object} Redux-style action.
   */
  setAudienceSegmentationSetupCompletedBy(audienceSegmentationSetupCompletedBy) {
    // Should be an integer.
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(typeof audienceSegmentationSetupCompletedBy === 'number', 'audienceSegmentationSetupCompletedBy by should be an integer.');
    return {
      type: SET_AUDIENCE_SEGMENTATION_SETUP_COMPLETED_BY,
      payload: {
        audienceSegmentationSetupCompletedBy
      }
    };
  },
  /**
   * Saves the audience settings.
   *
   * @since 1.148.0
   *
   * @param {Object} settings Audience settings to save.
   * @return {Object} Object with `response` and `error`.
   */
  saveAudienceSettings: (0,_js_googlesitekit_data_utils__WEBPACK_IMPORTED_MODULE_7__.createValidatedAction)(settings => {
    validateAudienceSettings(settings);
  }, function* (settings) {
    yield clearError('saveAudienceSettings', []);
    const {
      response,
      error
    } = yield fetchSaveAudienceSettingsStore.actions.fetchSaveAudienceSettings(settings);
    if (error) {
      yield receiveError(error, 'saveAudienceSettings', []);
    }
    return {
      response,
      error
    };
  })
};
const baseResolvers = {
  *getAudienceSettings() {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    const {
      select
    } = registry;
    const audienceSettings = select(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getAudienceSettings();
    if (audienceSettings === undefined) {
      yield fetchGetAudienceSettingsStore.actions.fetchGetAudienceSettings();
    }
  },
  *getOrSyncAvailableAudiences() {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    const audiences = registry.select(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getAvailableAudiences();
    if (audiences === null) {
      registry.dispatch(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).syncAvailableAudiences();
    }
  }
};
const baseReducer = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, {
  type,
  payload
}) => {
  switch (type) {
    case SET_AVAILABLE_AUDIENCES:
      const {
        availableAudiences
      } = payload;
      state.audienceSettings = {
        ...state.audienceSettings,
        availableAudiences
      };
      break;
    case SET_AUDIENCE_SEGMENTATION_SETUP_COMPLETED_BY:
      const {
        audienceSegmentationSetupCompletedBy
      } = payload;
      state.audienceSettings = {
        ...state.audienceSettings,
        audienceSegmentationSetupCompletedBy
      };
      break;
    default:
      break;
  }
});
const baseSelectors = {
  /**
   * Gets the available audiences.
   *
   * @since 1.148.0
   *
   * @param {Object} state Data store's state.
   * @return {(Array|null|undefined)} Available audiences, `null` if not set, or `undefined` if not loaded.
   */
  getAvailableAudiences: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => () => {
    const audienceSettings = select(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getAudienceSettings() || {};
    return audienceSettings.availableAudiences;
  }),
  /**
   * Gets the available audiences.
   *
   * @since 1.152.0
   *
   * @param {Object} state Data store's state.
   * @return {(Array|null|undefined)} Available audiences, `null` if not set, or `undefined` if not loaded.
   */
  getOrSyncAvailableAudiences: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => () => {
    return select(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getAvailableAudiences();
  }),
  /**
   * Gets the audience settings.
   *
   * @since 1.151.0
   *
   * @param {Object} state Data store's state.
   * @return {Object|undefined} Audience settings, or `undefined` if not loaded.
   */
  getAudienceSettings(state) {
    return state.audienceSettings;
  },
  /**
   * Gets the last time the available audiences were synced.
   *
   * @since 1.151.0
   *
   * @param {Object} state Data store's state.
   * @return {(number|undefined)} Last time the available audiences were synced, or `undefined` if not loaded.
   */
  getAvailableAudiencesLastSyncedAt: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => () => {
    const audienceSettings = select(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getAudienceSettings() || {};
    return audienceSettings.availableAudiencesLastSyncedAt;
  }),
  /**
   * Gets the user who set up Audience Segmentation.
   *
   * @since 1.151.0
   *
   * @param {Object} state Data store's state.
   * @return {(number|null|undefined)} ID for the user who set up Audience Segmentation, `null` if not set, or `undefined` if not loaded.
   */
  getAudienceSegmentationSetupCompletedBy: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => () => {
    const audienceSettings = select(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getAudienceSettings() || {};
    return audienceSettings.audienceSegmentationSetupCompletedBy;
  })
};
const store = (0,_js_googlesitekit_data_utils__WEBPACK_IMPORTED_MODULE_7__.combineStores)(fetchGetAudienceSettingsStore, fetchSaveAudienceSettingsStore, fetchSyncAvailableAudiencesStore, {
  initialState: baseInitialState,
  actions: baseActions,
  resolvers: baseResolvers,
  selectors: baseSelectors,
  reducer: baseReducer
});
const initialState = store.initialState;
const actions = store.actions;
const controls = store.controls;
const reducer = store.reducer;
const resolvers = store.resolvers;
const selectors = store.selectors;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (store);

/***/ }),

/***/ "./js/modules/analytics-4/datastore/audiences.js":
/*!*******************************************************!*\
  !*** ./js/modules/analytics-4/datastore/audiences.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   actions: () => (/* binding */ actions),
/* harmony export */   baseInitialState: () => (/* binding */ baseInitialState),
/* harmony export */   controls: () => (/* binding */ controls),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */   initialState: () => (/* binding */ initialState),
/* harmony export */   reducer: () => (/* binding */ reducer),
/* harmony export */   resolvers: () => (/* binding */ resolvers),
/* harmony export */   selectors: () => (/* binding */ selectors)
/* harmony export */ });
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-api */ "googlesitekit-api");
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_api__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/data/create-fetch-store */ "./js/googlesitekit/data/create-fetch-store.js");
/* harmony import */ var _js_googlesitekit_data_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/data/utils */ "./js/googlesitekit/data/utils.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_util_errors__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/util/errors */ "./js/util/errors.js");
/* harmony import */ var _js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/validation */ "./js/modules/analytics-4/utils/validation.js");
/**
 * `modules/analytics-4` data store: audiences.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */










const MAX_INITIAL_AUDIENCES = 2;
const START_AUDIENCES_SETUP = 'START_AUDIENCES_SETUP';
const FINISH_AUDIENCES_SETUP = 'FINISH_AUDIENCES_SETUP';
const START_MAYBE_SYNC_AUDIENCES = 'START_MAYBE_SYNC_AUDIENCES';
const FINISH_MAYBE_SYNC_AUDIENCES = 'FINISH_MAYBE_SYNC_AUDIENCES';
/**
 * Retrieves user counts for the provided audiences, filters to those with data over the given date range,
 * sorts them by total users, and returns the audienceResourceNames in that order.
 *
 * @since 1.128.0
 *
 * @param {Object} registry  Registry object.
 * @param {Array}  audiences Array of available audiences.
 * @param {string} startDate Start date for the report.
 * @param {string} endDate   End date for the report.
 * @return {Object} Object with audienceResourceNames array and error if any.
 */
async function getNonZeroDataAudiencesSortedByTotalUsers(registry, audiences, startDate, endDate) {
  const {
    select,
    resolveSelect
  } = registry;
  const reportOptions = select(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getAudiencesUserCountReportOptions(audiences, {
    startDate,
    endDate
  });
  const report = await resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getReport(reportOptions);
  const error = select(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [reportOptions]);
  if (error) {
    return {
      error
    };
  }
  const sortedRows = [...(report.rows || [])].sort((rowA, rowB) => (rowB.metricValues?.[0]?.value || 0) - (
  // `value` is `totalUsers`.
  rowA.metricValues?.[0]?.value || 0));

  // Rows without data shouldn't actually be returned in the report, but to be safe, filter them out if present.
  const rowsWithData = sortedRows.filter(({
    metricValues
  }) => metricValues?.[0]?.value > 0);
  return {
    audienceResourceNames: rowsWithData.map(({
      dimensionValues
    }) => dimensionValues?.[0]?.value // `value` is `audienceResourceName`.
    )
  };
}
const fetchCreateAudienceStore = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_4__.createFetchStore)({
  baseName: 'createAudience',
  controlCallback: ({
    audience
  }) => (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_0__.set)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_2__.MODULE_SLUG_ANALYTICS_4, 'create-audience', {
    audience
  }),
  argsToParams: audience => ({
    audience
  }),
  validateParams: ({
    audience
  }) => {
    (0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_9__.validateAudience)(audience);
  }
});

/**
 * Retrieves the initial set of selected audiences from the existing audiences.
 *
 * @since 1.148.0
 *
 * @param {Object} registry Registry object.
 * @return {Object} Object with `configuredAudiences` or `error`.
 */
async function getConfiguredAudiencesFromExistingAudiences(registry) {
  const {
    resolveSelect,
    select
  } = registry;
  const availableAudiences = select(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getOrSyncAvailableAudiences();
  const {
    error,
    configuredAudiences
  } = await getInitialConfiguredAudiences(registry, availableAudiences);
  if (error) {
    return {
      error
    };
  }
  if (configuredAudiences.length === 1) {
    // Add 'Purchasers' audience if it has data.
    const purchasersAudience = availableAudiences.find(({
      audienceSlug
    }) => audienceSlug === 'purchasers');
    if (purchasersAudience) {
      const purchasersResourceDataAvailabilityDate = await resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getResourceDataAvailabilityDate(purchasersAudience.name, _constants__WEBPACK_IMPORTED_MODULE_1__.RESOURCE_TYPE_AUDIENCE);
      if (purchasersResourceDataAvailabilityDate) {
        configuredAudiences.push(purchasersAudience.name);
      }
    }
  }
  return {
    configuredAudiences
  };
}

/**
 * Retrives the initial set of audiences for selection.
 *
 * @since 1.136.0
 * @since 1.148.0 Extracted to a helper function. Renamed from `retrieveInitialAudienceSelection` to `getInitialConfiguredAudiences`.
 *
 * @param {Object} registry           Registry object.
 * @param {Array}  availableAudiences List of available audiences.
 * @return {Object} Object with properties `configuredAudiences` or `error`.
 */
async function getInitialConfiguredAudiences(registry, availableAudiences) {
  const {
    select
  } = registry;
  const configuredAudiences = [];
  const userAudiences = availableAudiences.filter(({
    audienceType
  }) => audienceType === 'USER_AUDIENCE');
  if (userAudiences.length > 0) {
    // If there are user audiences, filter and sort them by total users over the last 90 days,
    // and add the top two (MAX_INITIAL_AUDIENCES) which have users to the configured audiences.

    const endDate = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).getReferenceDate();
    const startDate = (0,_js_util__WEBPACK_IMPORTED_MODULE_7__.getPreviousDate)(endDate, 90 + _constants__WEBPACK_IMPORTED_MODULE_1__.DATE_RANGE_OFFSET // Add offset to ensure we have data for the entirety of the last 90 days.
    );
    const {
      audienceResourceNames,
      error
    } = await getNonZeroDataAudiencesSortedByTotalUsers(registry, userAudiences, startDate, endDate);
    if (error) {
      return {
        error
      };
    }
    configuredAudiences.push(...audienceResourceNames.slice(0, MAX_INITIAL_AUDIENCES));
  }
  if (configuredAudiences.length < MAX_INITIAL_AUDIENCES) {
    // If there are less than two (MAX_INITIAL_AUDIENCES) configured user audiences, add the Site Kit-created audiences
    // if they exist, up to the limit of two.

    const siteKitAudiences = availableAudiences.filter(({
      audienceType
    }) => audienceType === 'SITE_KIT_AUDIENCE');

    // Audience slugs to sort by:
    const sortedSlugs = ['new-visitors', 'returning-visitors'];
    const sortedSiteKitAudiences = siteKitAudiences.sort((audienceA, audienceB) => {
      const indexA = sortedSlugs.indexOf(audienceA.audienceSlug);
      const indexB = sortedSlugs.indexOf(audienceB.audienceSlug);
      return indexA - indexB;
    });
    const audienceResourceNames = sortedSiteKitAudiences.slice(0, MAX_INITIAL_AUDIENCES - configuredAudiences.length).map(({
      name
    }) => name);
    configuredAudiences.push(...audienceResourceNames);
  }
  return {
    configuredAudiences
  };
}
const baseInitialState = {
  isSettingUpAudiences: false,
  audienceSync: {
    inProgress: false,
    hasSynced: false
  }
};
const baseActions = {
  /**
   * Creates new property audience.
   *
   * @since 1.120.0
   *
   * @param {Object} audience                             The property audience parameters.
   * @param {string} [audience.displayName]               Required. The display name of the Audience.
   * @param {string} [audience.description]               Required. The description of the Audience.
   * @param {number} [audience.membershipDurationDays]    Required. The duration a user should stay in an Audience. Cannot be more than 540 days.
   * @param {Array}  [audience.filterClauses]             Required. Filter clauses array of <AudienceFilterClause> objects that define the Audience.
   * @param {Object} [audience.eventTrigger]              Optional. Specifies an event to log when a user joins the Audience.
   * @param {string} [audience.eventTrigger.eventName]    Required if `eventTrigger` is provided. The event name that will be logged.
   * @param {string} [audience.eventTrigger.logCondition] Required if `eventTrigger` is provided. When to log the event. Acceptable values:
   *                                                      - 'LOG_CONDITION_UNSPECIFIED': Log condition is not specified.
   *                                                      - 'AUDIENCE_JOINED': The event should be logged only when a user is joined.
   *                                                      - 'AUDIENCE_MEMBERSHIP_RENEWED': The event should be logged whenever the Audience condition is met, even if the user is already a member of the Audience.
   * @param {string} [audience.exclusionDurationMode]     Optional. Specifies how long an exclusion lasts for users that meet the exclusion filter. Acceptable values:
   *                                                      - 'AUDIENCE_EXCLUSION_DURATION_MODE_UNSPECIFIED': Not specified.
   *                                                      - 'EXCLUDE_TEMPORARILY': Exclude users from the Audience during periods when they meet the filter clause.
   *                                                      - 'EXCLUDE_PERMANENTLY': Exclude users from the Audience if they've ever met the filter clause.
   * @return {Object} Object with `response` and `error`.
   */
  createAudience: (0,_js_googlesitekit_data_utils__WEBPACK_IMPORTED_MODULE_5__.createValidatedAction)(_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_9__.validateAudience, function* (audience) {
    const {
      response,
      error
    } = yield fetchCreateAudienceStore.actions.fetchCreateAudience(audience);
    return {
      response,
      error
    };
  }),
  /**
   * Syncs available audiences from the Analytics service.
   *
   * @since 1.126.0
   *
   * @return {Object} Object with `response` and `error`.
   */
  *syncAvailableAudiences() {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    const {
      select,
      dispatch,
      resolveSelect
    } = registry;
    yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(resolveSelect(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).getAuthentication());
    const isAuthenticated = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).isAuthenticated();
    if (!isAuthenticated) {
      const availableAudiences = select(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getOrSyncAvailableAudiences();
      return {
        response: availableAudiences !== null && availableAudiences !== void 0 ? availableAudiences : []
      };
    }
    const {
      response: availableAudiences,
      error
    } = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(dispatch(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).fetchSyncAvailableAudiences());
    if (error) {
      return {
        response: availableAudiences,
        error
      };
    }

    // Remove any configuredAudiences that are no longer available in availableAudiences.
    const configuredAudiences = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).getConfiguredAudiences();
    const newConfiguredAudiences = configuredAudiences?.filter(configuredAudience => availableAudiences?.some(({
      name
    }) => name === configuredAudience));
    if (configuredAudiences && newConfiguredAudiences && newConfiguredAudiences !== configuredAudiences) {
      dispatch(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).setConfiguredAudiences(newConfiguredAudiences || []);
    }
    return {
      response: availableAudiences,
      error
    };
  },
  /**
   * Syncs available audiences older than 1 hour.
   *
   * @since 1.132.0
   *
   * @return {void}
   */
  *maybeSyncAvailableAudiences() {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    const {
      select,
      dispatch,
      resolveSelect
    } = registry;
    yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(resolveSelect(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).getAuthentication());
    const isAuthenticated = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).isAuthenticated();
    if (!isAuthenticated) {
      // Unblock the flag so component relying on the value are not incorrectly blocked.
      yield {
        type: FINISH_MAYBE_SYNC_AUDIENCES
      };
      return;
    }
    const isSyncingAudiences = select(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).isSyncingAudiences();
    if (isSyncingAudiences) {
      return;
    }
    yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getAudienceSettings());
    yield {
      type: START_MAYBE_SYNC_AUDIENCES
    };
    const availableAudiencesLastSyncedAt = select(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getAvailableAudiencesLastSyncedAt();

    // Update the audience cache if the availableAudiencesLastSyncedAt setting is older than 1 hour.
    if (!availableAudiencesLastSyncedAt || availableAudiencesLastSyncedAt * 1000 <
    // eslint-disable-next-line sitekit/no-direct-date
    Date.now() - 1 * 60 * 60 * 1000) {
      yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(dispatch(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).syncAvailableAudiences());
    }
    yield {
      type: FINISH_MAYBE_SYNC_AUDIENCES
    };
  },
  /**
   * Populates the configured audiences with the top two user audiences and/or the Site Kit-created audiences,
   * depending on their availability and suitability (data over the last 90 days is required for user audiences).
   *
   * If no suitable audiences are available, creates the "new-visitors" and "returning-visitors" audiences.
   * If the `googlesitekit_post_type` custom dimension doesn't exist, creates it.
   *
   * @since 1.128.0
   * @since 1.131.0 Added `failedSiteKitAudienceSlugs` parameter to retry failed Site Kit audience creation.
   *
   * @param {Array} failedSiteKitAudienceSlugs List of failed Site Kit audience slugs to retry.
   * @return {Object} Object with `failedSiteKitAudienceSlugs`, `createdSiteKitAudienceSlugs` and `error`.
   */
  *enableAudienceGroup(failedSiteKitAudienceSlugs) {
    yield {
      type: START_AUDIENCES_SETUP
    };
    const response = yield baseActions.enableAudienceGroupMain(failedSiteKitAudienceSlugs);
    yield {
      type: FINISH_AUDIENCES_SETUP
    };
    return response;
  },
  /**
   * Checks if the user needs to grant the Analytics 4 edit scope to create audiences or custom dimensions.
   *
   * @since 1.148.0
   *
   * @return {Object} Object with `needsScope` or `error`.
   */
  *determineNeedForAnalytics4EditScope() {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    const {
      resolveSelect,
      select
    } = registry;
    yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getAvailableCustomDimensions());
    if (!select(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).hasCustomDimensions('googlesitekit_post_type')) {
      return {
        needsScope: true
      };
    }
    const {
      error,
      configuredAudiences
    } = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(getConfiguredAudiencesFromExistingAudiences(registry));
    if (error) {
      return {
        error
      };
    }
    return {
      needsScope: configuredAudiences.length === 0
    };
  },
  /**
   * This contains the main logic for the `*enableAudienceGroup()` action above.
   *
   * @since 1.136.0
   *
   * @param {Array} failedSiteKitAudienceSlugs List of failed Site Kit audience slugs to retry.
   * @return {Object} Object with `failedSiteKitAudienceSlugs`, `createdSiteKitAudienceSlugs` and `error`.
   */
  *enableAudienceGroupMain(failedSiteKitAudienceSlugs) {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    const {
      dispatch,
      select,
      resolveSelect
    } = registry;
    const configuredAudiences = [];
    if (!failedSiteKitAudienceSlugs?.length) {
      const {
        error,
        configuredAudiences: audiences
      } = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(getConfiguredAudiencesFromExistingAudiences(registry));
      if (error) {
        return {
          error
        };
      }
      configuredAudiences.push(...audiences);
    }
    if (configuredAudiences.length === 0) {
      const requiredAudienceSlugs = ['new-visitors', 'returning-visitors'];
      const audiencesToCreate = failedSiteKitAudienceSlugs?.length ? failedSiteKitAudienceSlugs : requiredAudienceSlugs;

      // If there are no configured audiences by this point, create the "new-visitors" and "returning-visitors" audiences,
      // and add them to the configured audiences.
      const audienceCreationResults = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(Promise.all(audiencesToCreate.map(audienceSlug => {
        return dispatch(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).createAudience(_constants__WEBPACK_IMPORTED_MODULE_1__.SITE_KIT_AUDIENCE_DEFINITIONS[audienceSlug]);
      })));
      const failedAudiencesToRetry = [];
      let insufficientPermissionsError = null;
      audienceCreationResults.forEach((result, index) => {
        const audienceSlug = audiencesToCreate[index];
        if (result.error) {
          if ((0,_js_util_errors__WEBPACK_IMPORTED_MODULE_8__.isInsufficientPermissionsError)(result.error)) {
            insufficientPermissionsError = result.error;
          } else {
            failedAudiencesToRetry.push(audienceSlug);
          }
        } else {
          configuredAudiences.push(result.response.name);
        }
      });
      if (insufficientPermissionsError) {
        return {
          error: insufficientPermissionsError
        };
      }
      yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(resolveSelect(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).getUserAudienceSettings());
      if (failedAudiencesToRetry.length > 0) {
        return {
          failedSiteKitAudienceSlugs: failedAudiencesToRetry
        };
      }
      const existingConfiguredAudiences = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).getConfiguredAudiences() || [];
      configuredAudiences.push(...existingConfiguredAudiences);

      // Resync available audiences to ensure the newly created audiences are available.
      const {
        error,
        response: newAvailableAudiences
      } = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(dispatch(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).syncAvailableAudiences());
      if (error) {
        return {
          error
        };
      }

      // Find the audience in the newly available audiences that matches the required slug.
      // If a matching audience is found and it's not already in the configured audiences, add it.
      // This is to ensure if one audience was created successfully but the other failed,
      // the successful one is still added on the retry.
      requiredAudienceSlugs.forEach(slug => {
        const matchingAudience = newAvailableAudiences.find(item => item.audienceSlug === slug);
        if (matchingAudience && !configuredAudiences.includes(matchingAudience.name)) {
          configuredAudiences.push(matchingAudience.name);
        }
      });
    }

    // Create custom dimension if it doesn't exist.
    yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getAvailableCustomDimensions());
    if (!select(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).hasCustomDimensions('googlesitekit_post_type')) {
      const propertyID = select(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getPropertyID();
      const {
        error
      } = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(dispatch(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).fetchCreateCustomDimension(propertyID, _constants__WEBPACK_IMPORTED_MODULE_1__.CUSTOM_DIMENSION_DEFINITIONS.googlesitekit_post_type));
      if (error) {
        return {
          error
        };
      }

      // If the custom dimension was created successfully, mark it as gathering
      // data immediately so that it doesn't cause unnecessary report requests.
      dispatch(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).receiveIsCustomDimensionGatheringData('googlesitekit_post_type', true);

      // Resync available custom dimensions to ensure the newly created custom dimension is available.
      yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(dispatch(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).fetchSyncAvailableCustomDimensions());
    }
    dispatch(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).setConfiguredAudiences(configuredAudiences);
    const {
      error
    } = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(dispatch(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).saveUserAudienceSettings());
    if (error) {
      return {
        error
      };
    }

    // Expire new badges for initially configured audiences.
    yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(dispatch(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).setExpirableItemTimers(configuredAudiences.map(slug => ({
      slug: `${_constants__WEBPACK_IMPORTED_MODULE_1__.AUDIENCE_ITEM_NEW_BADGE_SLUG_PREFIX}${slug}`,
      expiresInSeconds: 1
    }))));
    const userID = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).getID();
    dispatch(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).setAudienceSegmentationSetupCompletedBy(userID);
    const audienceSettings = select(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getAudienceSettings();
    const {
      saveSettingsError
    } = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(dispatch(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).saveAudienceSettings(audienceSettings));
    if (saveSettingsError) {
      return {
        error: saveSettingsError
      };
    }
    yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(dispatch(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).triggerSurvey('audience_segmentation_setup_completed'));
    return {};
  },
  /**
   * Populates the configured audiences for the secondary user.
   *
   * @since 1.136.0
   *
   * @return {Object} Object with `error`.
   */
  *enableSecondaryUserAudienceGroup() {
    yield {
      type: START_AUDIENCES_SETUP
    };
    const response = yield baseActions.enableSecondaryUserAudienceGroupMain();
    yield {
      type: FINISH_AUDIENCES_SETUP
    };
    return response;
  },
  /**
   * This contains the main logic for the `*enableSecondaryUserAudienceGroup()` action above.
   *
   * @since 1.136.0
   *
   * @return {Object} Object with `error`.
   */
  *enableSecondaryUserAudienceGroupMain() {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    const {
      dispatch,
      resolveSelect
    } = registry;
    const {
      response: availableAudiences,
      error: syncError
    } = yield baseActions.syncAvailableAudiences();
    if (syncError) {
      return {
        error: syncError
      };
    }
    const {
      error: retrieveInitialAudienceSelectionError,
      configuredAudiences
    } = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(getInitialConfiguredAudiences(registry, availableAudiences));
    if (retrieveInitialAudienceSelectionError) {
      return {
        error: retrieveInitialAudienceSelectionError
      };
    }
    if (configuredAudiences.length < MAX_INITIAL_AUDIENCES) {
      // Add 'Purchasers' audience if it has data.
      const purchasersAudience = availableAudiences.find(({
        audienceSlug
      }) => audienceSlug === 'purchasers');
      if (purchasersAudience) {
        const purchasersResourceDataAvailabilityDate = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getResourceDataAvailabilityDate(purchasersAudience.name, _constants__WEBPACK_IMPORTED_MODULE_1__.RESOURCE_TYPE_AUDIENCE));
        if (purchasersResourceDataAvailabilityDate) {
          configuredAudiences.push(purchasersAudience.name);
        }
      }
    }
    dispatch(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).setConfiguredAudiences(configuredAudiences);
    const {
      error
    } = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(dispatch(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).saveUserAudienceSettings());
    if (error) {
      return {
        error
      };
    }
    if (configuredAudiences.length > 0) {
      // Expire new badges for initially configured audiences.
      yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(dispatch(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).setExpirableItemTimers(configuredAudiences.map(slug => ({
        slug: `${_constants__WEBPACK_IMPORTED_MODULE_1__.AUDIENCE_ITEM_NEW_BADGE_SLUG_PREFIX}${slug}`,
        expiresInSeconds: 1
      }))));
    }
    return {};
  }
};
const baseReducer = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, {
  type
}) => {
  switch (type) {
    case START_AUDIENCES_SETUP:
      state.isSettingUpAudiences = true;
      break;
    case START_MAYBE_SYNC_AUDIENCES:
      state.audienceSync = {
        inProgress: true,
        hasSynced: false
      };
      break;
    case FINISH_MAYBE_SYNC_AUDIENCES:
      state.audienceSync = {
        inProgress: false,
        hasSynced: true
      };
      break;
    case FINISH_AUDIENCES_SETUP:
      state.isSettingUpAudiences = false;
      break;
    default:
      break;
  }
});
const baseResolvers = {};
const baseSelectors = {
  /**
   * Checks if the audience group setup is in progress.
   *
   * @since 1.136.0
   *
   * @param {Object} state Data store's state.
   * @return {boolean} True if the audience group setup is in progress, otherwise false.
   */
  isSettingUpAudiences: state => state.isSettingUpAudiences,
  /**
   * Checks if the given audience is a default audience.
   *
   * @since 1.127.0
   *
   * @param {string} audienceResourceName The audience resource name.
   * @param {Object} state                Data store's state.
   * @return {(boolean|undefined)} `true` if the audience is a default audience, `false` if not, `undefined` if not loaded.
   */
  isDefaultAudience: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => (state, audienceResourceName) => {
    const availableAudiences = select(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getOrSyncAvailableAudiences();
    if (availableAudiences === undefined) {
      return undefined;
    }
    const audience = availableAudiences.find(({
      name
    }) => name === audienceResourceName);
    return audience?.audienceType === 'DEFAULT_AUDIENCE';
  }),
  /**
   * Checks if the given audience is a Site Kit-created audience.
   *
   * @since 1.127.0
   *
   * @param {string} audienceResourceName The audience resource name.
   * @param {Object} state                Data store's state.
   * @return {(boolean|undefined)} `true` if the audience is a Site Kit-created audience, `false` if not, `undefined` if not loaded.
   */
  isSiteKitAudience: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => (state, audienceResourceName) => {
    const availableAudiences = select(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getOrSyncAvailableAudiences();
    if (availableAudiences === undefined) {
      return undefined;
    }
    const audience = availableAudiences.find(({
      name
    }) => name === audienceResourceName);
    return audience?.audienceType === 'SITE_KIT_AUDIENCE';
  }),
  /**
   * Checks if the given audience is a user-defined audience.
   *
   * @since 1.127.0
   *
   * @param {string} audienceResourceName The audience resource name.
   * @param {Object} state                Data store's state.
   * @return {(boolean|undefined)} `true` if the audience is a user-defined audience, `false` if not, `undefined` if not loaded.
   */
  isUserAudience: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => (state, audienceResourceName) => {
    const availableAudiences = select(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getOrSyncAvailableAudiences();
    if (availableAudiences === undefined) {
      return undefined;
    }
    const audience = availableAudiences.find(({
      name
    }) => name === audienceResourceName);
    return audience?.audienceType === 'USER_AUDIENCE';
  }),
  /**
   * Checks if the audience is syncing.
   *
   * @since 1.158.0
   *
   * @param {Object} state Data store's state.
   * @return {(boolean)} `true` if the audience is syncing, `false` if not.
   */
  isSyncingAudiences: state => state.audienceSync.inProgress,
  /**
   * Checks if the audience sync has completed.
   *
   * @since 1.158.0
   *
   * @param {Object} state Data store's state.
   * @return {(boolean)} `true` if the audience sync has completed, `false` if not.
   */
  hasSyncedAudiences: state => state.audienceSync.hasSynced,
  /**
   * Checks whether the provided audiences are available.
   *
   * @since 1.127.0
   *
   * @param {Object}               state                 Data store's state.
   * @param {string|Array<string>} audienceResourceNames The audience resource names to check.
   * @return {boolean} True if all provided audiences are available, otherwise false. Undefined if available audiences are not loaded yet.
   */
  hasAudiences: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => (state, audienceResourceNames) => {
    const audiencesToCheck = Array.isArray(audienceResourceNames) ? audienceResourceNames : [audienceResourceNames];
    const availableAudiences = select(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getOrSyncAvailableAudiences();
    if (availableAudiences === undefined) {
      return undefined;
    }
    if (availableAudiences === null) {
      return false;
    }
    return audiencesToCheck.every(audienceResourceName => availableAudiences.some(({
      name
    }) => name === audienceResourceName));
  }),
  /**
   * Gets the available configurable audiences.
   *
   * This selector filters out the "Purchasers" audience if it has no data.
   *
   * @since 1.129.0
   *
   * @return {(Array|undefined)} Array of configurable audiences. Undefined if available audiences are not loaded yet.
   */
  getConfigurableAudiences: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => () => {
    const {
      getOrSyncAvailableAudiences,
      getResourceDataAvailabilityDate
    } = select(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4);
    const availableAudiences = getOrSyncAvailableAudiences();
    if (availableAudiences === undefined) {
      return undefined;
    }
    if (!Array.isArray(availableAudiences)) {
      return [];
    }
    return availableAudiences
    // Filter out "Purchasers" audience if it has no data.
    .filter(({
      audienceSlug,
      name
    }) => {
      if ('purchasers' !== audienceSlug) {
        return true;
      }
      return !!getResourceDataAvailabilityDate(name, 'audience');
    });
  }),
  /**
   * Gets the options for the audiences user count report.
   *
   * @since 1.131.0
   *
   * @param {Object} state             Data store's state.
   * @param {Array}  audiences         Array of available audiences.
   * @param {Object} options           Optional. Options to pass to the selector.
   * @param {string} options.startDate Start date for the report.
   * @param {string} options.endDate   End date for the report.
   * @return {Object} Returns the report options for the audiences user count report.
   */
  getAudiencesUserCountReportOptions: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => (state, audiences, {
    startDate,
    endDate
  } = {}) => {
    const dateRangeDates = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).getDateRangeDates({
      offsetDays: _constants__WEBPACK_IMPORTED_MODULE_1__.DATE_RANGE_OFFSET
    });
    return {
      startDate: startDate || dateRangeDates.startDate,
      endDate: endDate || dateRangeDates.endDate,
      metrics: [{
        name: 'totalUsers'
      }],
      dimensions: [{
        name: 'audienceResourceName'
      }],
      dimensionFilters: {
        audienceResourceName: (audiences || []).map(({
          name
        }) => name)
      },
      reportID: 'audience-segmentation_get-audiences-user-count-report-options_store:selector'
    };
  }),
  /**
   * Gets the error for the audiences user count report.
   *
   * @since 1.131.0
   *
   * @return {(Object|undefined)} Error object if exists, otherwise undefined.
   */
  getAudienceUserCountReportErrors: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => () => {
    const {
      getConfigurableAudiences,
      getAudiencesUserCountReportOptions,
      getSiteKitAudiencesUserCountReportOptions,
      getErrorForSelector,
      getConfigurableSiteKitAndOtherAudiences,
      hasAudiencePartialData
    } = select(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4);
    const configurableAudiences = getConfigurableAudiences();
    if (configurableAudiences === undefined) {
      return undefined;
    }

    // eslint-disable-next-line @wordpress/no-unused-vars-before-return
    const [siteKitAudiences, otherAudiences] = getConfigurableSiteKitAndOtherAudiences();
    const isSiteKitAudiencePartialData = hasAudiencePartialData(siteKitAudiences);
    if (undefined === isSiteKitAudiencePartialData) {
      return undefined;
    }
    const siteKitUserCountReportError = isSiteKitAudiencePartialData ? getErrorForSelector('getReport', [getSiteKitAudiencesUserCountReportOptions()]) : undefined;
    const otherUserCountReportError = isSiteKitAudiencePartialData === false || otherAudiences?.length > 0 ? getErrorForSelector('getReport', [getAudiencesUserCountReportOptions(isSiteKitAudiencePartialData ? otherAudiences : configurableAudiences)]) : undefined;
    return [siteKitUserCountReportError, otherUserCountReportError];
  }),
  /**
   * Gets the report options for the Site Kit audiences user count report.
   *
   * @since 1.134.0
   *
   * @return {Object} Returns the report options for the Site Kit audiences user count report.
   */
  getSiteKitAudiencesUserCountReportOptions: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => () => {
    const dateRangeDates = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).getDateRangeDates({
      offsetDays: _constants__WEBPACK_IMPORTED_MODULE_1__.DATE_RANGE_OFFSET
    });
    return {
      startDate: dateRangeDates.startDate,
      endDate: dateRangeDates.endDate,
      metrics: [{
        name: 'totalUsers'
      }],
      dimensions: [{
        name: 'newVsReturning'
      }]
    };
  }),
  /**
   * Checks if any of the provided audiences are in the partial data state.
   *
   * @since 1.134.0
   *
   * @param {Array} audiences Array of audiences to check.
   * @return {boolean|undefined} True if any of the provided audiences is in partial data state, otherwise false. Undefined if available audiences or any partial data state is not loaded yet.
   */
  hasAudiencePartialData: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => (state, audiences) => {
    if (undefined === audiences) {
      return undefined;
    }
    for (const audience of audiences || []) {
      const isPartialData = select(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).isAudiencePartialData(audience.name);
      if (isPartialData === undefined) {
        return undefined;
      }
      if (isPartialData) {
        return true;
      }
    }
    return false;
  }),
  /**
   * Checks if the provided audience is a Site Kit audience in the partial data state and returns the audience object if so.
   *
   * @since 1.136.0
   *
   * @param {string} audienceResourceName The audience resource name.
   * @return {(Object|null|undefined)} The audience object if the audience is a Site Kit audience in the partial data state, otherwise null. Undefined if available audiences or the partial data state is not loaded yet.
   */
  getPartialDataSiteKitAudience: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => (state, audienceResourceName) => {
    const availableAudiences = select(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getOrSyncAvailableAudiences();
    if (availableAudiences === undefined) {
      return undefined;
    }
    const audience = availableAudiences.find(({
      name
    }) => name === audienceResourceName);
    if (audience?.audienceType !== 'SITE_KIT_AUDIENCE') {
      return null;
    }
    const isPartialData = select(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).isAudiencePartialData(audienceResourceName);
    if (isPartialData === undefined) {
      return undefined;
    }
    return isPartialData ? audience : null;
  }),
  /**
   * Gets the configurable Site Kit and other (non Site Kit) audiences.
   *
   * @since 1.134.0
   *
   * @return {Array} Array of Site Kit and other audiences.
   */
  getConfigurableSiteKitAndOtherAudiences: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => () => {
    const audiences = select(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getConfigurableAudiences();
    if (undefined === audiences) {
      return undefined;
    }
    if (!audiences?.length) {
      return [];
    }
    const [siteKitAudiences, otherAudiences] = audiences.reduce(([siteKit, other], audience) => {
      if (audience.audienceType === 'SITE_KIT_AUDIENCE') {
        siteKit.push(audience);
      } else {
        other.push(audience);
      }
      return [siteKit, other];
    }, [[], []] // Initial values.
    );
    return [siteKitAudiences, otherAudiences];
  }),
  /**
   * Gets the configurable Site Kit and other (non Site Kit) audiences.
   *
   * @since 1.136.0
   *
   * @return {Array} Array of Site Kit and other audiences.
   */
  getConfiguredSiteKitAndOtherAudiences: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => () => {
    const configuredAudiences = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).getConfiguredAudiences();
    const availableAudiences = select(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getOrSyncAvailableAudiences();
    if (undefined === configuredAudiences || undefined === availableAudiences) {
      return undefined;
    }
    if (!configuredAudiences?.length) {
      return [];
    }
    const [siteKitAudiences, otherAudiences] = configuredAudiences.reduce(([siteKit, other], configuredAudience) => {
      const audience = availableAudiences.find(({
        name
      }) => name === configuredAudience);
      if (audience?.audienceType === 'SITE_KIT_AUDIENCE') {
        siteKit.push(audience);
      } else {
        other.push(audience);
      }
      return [siteKit, other];
    }, [[], []] // Initial values.
    );
    return [siteKitAudiences, otherAudiences];
  })
};
const store = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.combineStores)(fetchCreateAudienceStore, {
  initialState: baseInitialState,
  actions: baseActions,
  controls: {},
  reducer: baseReducer,
  resolvers: baseResolvers,
  selectors: baseSelectors
});
const initialState = store.initialState;
const actions = store.actions;
const controls = store.controls;
const reducer = store.reducer;
const resolvers = store.resolvers;
const selectors = store.selectors;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (store);

/***/ }),

/***/ "./js/modules/analytics-4/datastore/base.js":
/*!**************************************************!*\
  !*** ./js/modules/analytics-4/datastore/base.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var googlesitekit_modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-modules */ "googlesitekit-modules");
/* harmony import */ var googlesitekit_modules__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_modules__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./settings */ "./js/modules/analytics-4/datastore/settings.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/**
 * `modules/analytics-4` base data store
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */





const baseModuleStore = googlesitekit_modules__WEBPACK_IMPORTED_MODULE_0___default().createModuleStore(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_2__.MODULE_SLUG_ANALYTICS_4, {
  ownedSettingsSlugs: ['accountID', 'propertyID', 'webDataStreamID', 'measurementID', 'googleTagID', 'googleTagAccountID', 'googleTagContainerID'],
  storeName: _constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4,
  settingSlugs: ['accountID', 'adsConversionID', 'adSenseLinked', 'adSenseLinkedLastSyncedAt', 'propertyID', 'webDataStreamID', 'measurementID', 'useSnippet', 'ownerID', 'googleTagID', 'googleTagAccountID', 'googleTagContainerID', 'googleTagContainerDestinationIDs', 'googleTagLastSyncedAtMs', 'availableCustomDimensions', 'propertyCreateTime', 'trackingDisabled', 'adsConversionIDMigratedAtMs', 'adsLinked', 'adsLinkedLastSyncedAt', 'detectedEvents', 'newConversionEventsLastUpdateAt', 'lostConversionEventsLastUpdateAt'],
  submitChanges: _settings__WEBPACK_IMPORTED_MODULE_3__.submitChanges,
  rollbackChanges: _settings__WEBPACK_IMPORTED_MODULE_3__.rollbackChanges,
  validateCanSubmitChanges: _settings__WEBPACK_IMPORTED_MODULE_3__.validateCanSubmitChanges,
  validateHaveSettingsChanged: _settings__WEBPACK_IMPORTED_MODULE_3__.validateHaveSettingsChanged
});
const originalSetPropertyCreateTime = baseModuleStore.actions.setPropertyCreateTime;
baseModuleStore.actions.setPropertyCreateTime = value => {
  return originalSetPropertyCreateTime((0,_js_util__WEBPACK_IMPORTED_MODULE_4__.convertDateStringToUNIXTimestamp)(value));
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseModuleStore);

/***/ }),

/***/ "./js/modules/analytics-4/datastore/constants.js":
/*!*******************************************************!*\
  !*** ./js/modules/analytics-4/datastore/constants.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   ACCOUNT_CREATE: () => (/* binding */ ACCOUNT_CREATE),
/* harmony export */   AUDIENCE_FILTER_CLAUSE_TYPE_ENUM: () => (/* binding */ AUDIENCE_FILTER_CLAUSE_TYPE_ENUM),
/* harmony export */   AUDIENCE_FILTER_SCOPE_ENUM: () => (/* binding */ AUDIENCE_FILTER_SCOPE_ENUM),
/* harmony export */   AUDIENCE_ITEM_NEW_BADGE_SLUG_PREFIX: () => (/* binding */ AUDIENCE_ITEM_NEW_BADGE_SLUG_PREFIX),
/* harmony export */   AUDIENCE_SEGMENTATION_SETUP_FORM: () => (/* binding */ AUDIENCE_SEGMENTATION_SETUP_FORM),
/* harmony export */   AUDIENCE_TILE_CUSTOM_DIMENSION_CREATE: () => (/* binding */ AUDIENCE_TILE_CUSTOM_DIMENSION_CREATE),
/* harmony export */   AUDIENCE_TYPE_SORT_ORDER: () => (/* binding */ AUDIENCE_TYPE_SORT_ORDER),
/* harmony export */   CONVERSION_REPORTING_LEAD_EVENTS: () => (/* binding */ CONVERSION_REPORTING_LEAD_EVENTS),
/* harmony export */   CUSTOM_DIMENSION_DEFINITIONS: () => (/* binding */ CUSTOM_DIMENSION_DEFINITIONS),
/* harmony export */   DATE_RANGE_OFFSET: () => (/* binding */ DATE_RANGE_OFFSET),
/* harmony export */   EDIT_SCOPE: () => (/* binding */ EDIT_SCOPE),
/* harmony export */   ENHANCED_MEASUREMENT_ENABLED: () => (/* binding */ ENHANCED_MEASUREMENT_ENABLED),
/* harmony export */   ENHANCED_MEASUREMENT_FORM: () => (/* binding */ ENHANCED_MEASUREMENT_FORM),
/* harmony export */   ENHANCED_MEASUREMENT_SHOULD_DISMISS_ACTIVATION_BANNER: () => (/* binding */ ENHANCED_MEASUREMENT_SHOULD_DISMISS_ACTIVATION_BANNER),
/* harmony export */   ENUM_CONVERSION_EVENTS: () => (/* binding */ ENUM_CONVERSION_EVENTS),
/* harmony export */   FORM_ACCOUNT_CREATE: () => (/* binding */ FORM_ACCOUNT_CREATE),
/* harmony export */   FORM_CUSTOM_DIMENSIONS_CREATE: () => (/* binding */ FORM_CUSTOM_DIMENSIONS_CREATE),
/* harmony export */   FORM_SETUP: () => (/* binding */ FORM_SETUP),
/* harmony export */   GTM_SCOPE: () => (/* binding */ GTM_SCOPE),
/* harmony export */   MAX_WEBDATASTREAMS_PER_BATCH: () => (/* binding */ MAX_WEBDATASTREAMS_PER_BATCH),
/* harmony export */   MODULES_ANALYTICS_4: () => (/* binding */ MODULES_ANALYTICS_4),
/* harmony export */   PROPERTY_CREATE: () => (/* binding */ PROPERTY_CREATE),
/* harmony export */   PROVISIONING_SCOPE: () => (/* binding */ PROVISIONING_SCOPE),
/* harmony export */   RESOURCE_TYPES: () => (/* binding */ RESOURCE_TYPES),
/* harmony export */   RESOURCE_TYPE_AUDIENCE: () => (/* binding */ RESOURCE_TYPE_AUDIENCE),
/* harmony export */   RESOURCE_TYPE_CUSTOM_DIMENSION: () => (/* binding */ RESOURCE_TYPE_CUSTOM_DIMENSION),
/* harmony export */   RESOURCE_TYPE_PROPERTY: () => (/* binding */ RESOURCE_TYPE_PROPERTY),
/* harmony export */   SITE_KIT_AUDIENCE_DEFINITIONS: () => (/* binding */ SITE_KIT_AUDIENCE_DEFINITIONS),
/* harmony export */   UI_ACTIVE_ROW_INDEX: () => (/* binding */ UI_ACTIVE_ROW_INDEX),
/* harmony export */   UI_ALL_TRAFFIC_LOADED: () => (/* binding */ UI_ALL_TRAFFIC_LOADED),
/* harmony export */   UI_DIMENSION_COLOR: () => (/* binding */ UI_DIMENSION_COLOR),
/* harmony export */   UI_DIMENSION_NAME: () => (/* binding */ UI_DIMENSION_NAME),
/* harmony export */   UI_DIMENSION_VALUE: () => (/* binding */ UI_DIMENSION_VALUE),
/* harmony export */   WEBDATASTREAM_CREATE: () => (/* binding */ WEBDATASTREAM_CREATE)
/* harmony export */ });
/**
 * `modules/analytics-4` data store constants.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const MODULES_ANALYTICS_4 = 'modules/analytics-4';

// A special Account ID value used for the "Set up a new account" option.
const ACCOUNT_CREATE = 'account_create';

// A special Property ID value used for the "Set up a new property" option.
const PROPERTY_CREATE = 'property_create';
const WEBDATASTREAM_CREATE = 'webdatastream_create';
const FORM_SETUP = 'analyticsSetup';
const MAX_WEBDATASTREAMS_PER_BATCH = 10;

// Date range offset days for Analytics 4 report requests.
const DATE_RANGE_OFFSET = 0;
const GTM_SCOPE = 'https://www.googleapis.com/auth/tagmanager.readonly';
const ENHANCED_MEASUREMENT_FORM = 'enhanced-measurement-form';
const ENHANCED_MEASUREMENT_ENABLED = 'enhanced-measurement-enabled';
const ENHANCED_MEASUREMENT_SHOULD_DISMISS_ACTIVATION_BANNER = 'enhanced-measurement-should-dismiss-activation-banner';

// Form ID for the account creation form.
const FORM_ACCOUNT_CREATE = 'analyticsAccountCreate';
const FORM_CUSTOM_DIMENSIONS_CREATE = 'analyticsCustomDimensionsCreate';

// OAuth scope required for provisioning a Google Analytics account.
const PROVISIONING_SCOPE = 'https://www.googleapis.com/auth/analytics.provision';
const EDIT_SCOPE = 'https://www.googleapis.com/auth/analytics.edit';

// Dashboard widget constants.
const UI_DIMENSION_NAME = 'dashboardAllTrafficWidgetDimensionName';
const UI_DIMENSION_COLOR = 'dashboardAllTrafficWidgetDimensionColor';
const UI_DIMENSION_VALUE = 'dashboardAllTrafficWidgetDimensionValue';
const UI_ACTIVE_ROW_INDEX = 'dashboardAllTrafficWidgetActiveRowIndex';
const UI_ALL_TRAFFIC_LOADED = 'dashboardAllTrafficWidgetLoaded';

// Note: names and descriptions are not translated as these are not surfaced in Site Kit
// and are also subject to hard limits on the length which would be unpredictable if translated.
// See https://developers.google.com/analytics/devguides/config/admin/v1/rest/v1beta/properties.customDimensions#CustomDimension
const CUSTOM_DIMENSION_DEFINITIONS = {
  googlesitekit_post_date: {
    parameterName: 'googlesitekit_post_date',
    displayName: 'WordPress Post Date',
    description: 'Created by Site Kit: Date when a post was published',
    scope: 'EVENT'
  },
  googlesitekit_post_author: {
    parameterName: 'googlesitekit_post_author',
    displayName: 'WordPress Post Author',
    description: 'Created by Site Kit: WordPress name of the post author',
    scope: 'EVENT'
  },
  googlesitekit_post_categories: {
    parameterName: 'googlesitekit_post_categories',
    displayName: 'WordPress Post Categories',
    description: 'Created by Site Kit: Names of categories assigned to a post',
    scope: 'EVENT'
  },
  googlesitekit_post_type: {
    parameterName: 'googlesitekit_post_type',
    displayName: 'WordPress Post Type',
    description: 'Created by Site Kit: Content type of a post',
    scope: 'EVENT'
  }
};
const ENUM_CONVERSION_EVENTS = {
  ADD_TO_CART: 'add_to_cart',
  PURCHASE: 'purchase',
  SUBMIT_LEAD_FORM: 'submit_lead_form',
  GENERATE_LEAD: 'generate_lead',
  CONTACT: 'contact'
};
const CONVERSION_REPORTING_LEAD_EVENTS = [ENUM_CONVERSION_EVENTS.CONTACT, ENUM_CONVERSION_EVENTS.GENERATE_LEAD, ENUM_CONVERSION_EVENTS.SUBMIT_LEAD_FORM];

// Audience enums.
const AUDIENCE_FILTER_CLAUSE_TYPE_ENUM = {
  AUDIENCE_CLAUSE_TYPE_UNSPECIFIED: 'AUDIENCE_CLAUSE_TYPE_UNSPECIFIED',
  INCLUDE: 'INCLUDE',
  EXCLUDE: 'EXCLUDE'
};
const AUDIENCE_FILTER_SCOPE_ENUM = {
  AUDIENCE_FILTER_SCOPE_UNSPECIFIED: 'AUDIENCE_FILTER_SCOPE_UNSPECIFIED',
  AUDIENCE_FILTER_SCOPE_WITHIN_SAME_EVENT: 'AUDIENCE_FILTER_SCOPE_WITHIN_SAME_EVENT',
  AUDIENCE_FILTER_SCOPE_WITHIN_SAME_SESSION: 'AUDIENCE_FILTER_SCOPE_WITHIN_SAME_SESSION',
  AUDIENCE_FILTER_SCOPE_ACROSS_ALL_SESSIONS: 'AUDIENCE_FILTER_SCOPE_ACROSS_ALL_SESSIONS'
};
const SITE_KIT_AUDIENCE_DEFINITIONS = {
  'new-visitors': {
    description: 'People who visited the site for the first time',
    displayName: 'New visitors',
    membershipDurationDays: -1,
    // The longest duration, 540 days.
    filterClauses: [{
      clauseType: 'INCLUDE',
      simpleFilter: {
        scope: 'AUDIENCE_FILTER_SCOPE_ACROSS_ALL_SESSIONS',
        filterExpression: {
          andGroup: {
            filterExpressions: [{
              orGroup: {
                filterExpressions: [{
                  dimensionOrMetricFilter: {
                    fieldName: 'newVsReturning',
                    stringFilter: {
                      matchType: 'EXACT',
                      value: 'new'
                    }
                  }
                }]
              }
            }, {
              orGroup: {
                filterExpressions: [{
                  notExpression: {
                    dimensionOrMetricFilter: {
                      fieldName: 'groupId',
                      stringFilter: {
                        matchType: 'EXACT',
                        value: 'created_by_googlesitekit:new_visitors'
                      }
                    }
                  }
                }]
              }
            }]
          }
        }
      }
    }]
  },
  'returning-visitors': {
    description: 'People who have visited your site at least once before',
    displayName: 'Returning visitors',
    membershipDurationDays: -1,
    // The longest duration, 540 days.
    filterClauses: [{
      clauseType: 'INCLUDE',
      simpleFilter: {
        scope: 'AUDIENCE_FILTER_SCOPE_ACROSS_ALL_SESSIONS',
        filterExpression: {
          andGroup: {
            filterExpressions: [{
              orGroup: {
                filterExpressions: [{
                  dimensionOrMetricFilter: {
                    fieldName: 'newVsReturning',
                    stringFilter: {
                      matchType: 'EXACT',
                      value: 'returning'
                    }
                  }
                }]
              }
            }, {
              orGroup: {
                filterExpressions: [{
                  notExpression: {
                    dimensionOrMetricFilter: {
                      fieldName: 'groupId',
                      stringFilter: {
                        matchType: 'EXACT',
                        value: 'created_by_googlesitekit:returning_visitors'
                      }
                    }
                  }
                }]
              }
            }]
          }
        }
      }
    }]
  }
};
const AUDIENCE_SEGMENTATION_SETUP_FORM = 'audiencePermissionsSetup';
const AUDIENCE_TILE_CUSTOM_DIMENSION_CREATE = 'audienceTileCustomDimensionCreate';
const AUDIENCE_TYPE_SORT_ORDER = {
  USER_AUDIENCE: 0,
  SITE_KIT_AUDIENCE: 1,
  DEFAULT_AUDIENCE: 2
};
const AUDIENCE_ITEM_NEW_BADGE_SLUG_PREFIX = 'audience-selection-panel-expirable-new-badge-';
const RESOURCE_TYPE_AUDIENCE = 'audience';
const RESOURCE_TYPE_CUSTOM_DIMENSION = 'customDimension';
const RESOURCE_TYPE_PROPERTY = 'property';
const RESOURCE_TYPES = [RESOURCE_TYPE_AUDIENCE, RESOURCE_TYPE_CUSTOM_DIMENSION, RESOURCE_TYPE_PROPERTY];

/***/ }),

/***/ "./js/modules/analytics-4/datastore/containers.js":
/*!********************************************************!*\
  !*** ./js/modules/analytics-4/datastore/containers.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   actions: () => (/* binding */ actions),
/* harmony export */   controls: () => (/* binding */ controls),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */   initialState: () => (/* binding */ initialState),
/* harmony export */   reducer: () => (/* binding */ reducer),
/* harmony export */   resolvers: () => (/* binding */ resolvers),
/* harmony export */   selectors: () => (/* binding */ selectors)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-api */ "googlesitekit-api");
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_api__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/data/create-fetch-store */ "./js/googlesitekit/data/create-fetch-store.js");
/**
 * `modules/analytics-4` data store: containers.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */





const fetchGetGoogleTagContainerStore = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_5__.createFetchStore)({
  baseName: 'getGoogleTagContainer',
  controlCallback({
    measurementID
  }) {
    return (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_1__.get)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_4__.MODULE_SLUG_ANALYTICS_4, 'container-lookup', {
      destinationID: measurementID
    }, {
      useCache: false
    });
  },
  reducerCallback: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.createReducer)((state, container, {
    measurementID
  }) => {
    state.containers[measurementID] = container;
  }),
  argsToParams(measurementID) {
    return {
      measurementID
    };
  },
  validateParams({
    measurementID
  } = {}) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(measurementID, 'measurementID is required.');
  }
});
const fetchGetGoogleTagContainerDestinationsStore = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_5__.createFetchStore)({
  baseName: 'getGoogleTagContainerDestinations',
  controlCallback({
    gtmAccountID,
    gtmContainerID
  }) {
    return (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_1__.get)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_4__.MODULE_SLUG_ANALYTICS_4, 'container-destinations', {
      accountID: gtmAccountID,
      containerID: gtmContainerID
    }, {
      useCache: false
    });
  },
  reducerCallback: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.createReducer)((state, containerDestinations, {
    gtmAccountID,
    gtmContainerID
  }) => {
    state.containerDestinations[gtmAccountID] = state.containerDestinations[gtmAccountID] || {};
    state.containerDestinations[gtmAccountID][gtmContainerID] = state.containerDestinations[gtmAccountID][gtmContainerID] || [];
    state.containerDestinations[gtmAccountID][gtmContainerID].push(...containerDestinations);
  }),
  argsToParams(gtmAccountID, gtmContainerID) {
    return {
      gtmAccountID,
      gtmContainerID
    };
  },
  validateParams({
    gtmAccountID,
    gtmContainerID
  } = {}) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(gtmAccountID, 'gtmAccountID is required.');
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(gtmContainerID, 'gtmContainerID is required.');
  }
});
const baseInitialState = {
  containers: {},
  containerDestinations: {}
};
const baseActions = {};
const baseControls = {};
function baseReducer(state, {
  type
}) {
  switch (type) {
    default:
      {
        return state;
      }
  }
}
const baseResolvers = {
  *getGoogleTagContainer(measurementID) {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.commonActions.getRegistry();
    const container = registry.select(_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getGoogleTagContainer(measurementID);
    if (container === undefined) {
      yield fetchGetGoogleTagContainerStore.actions.fetchGetGoogleTagContainer(measurementID);
    }
  },
  *getGoogleTagContainerDestinations(gtmAccountID, gtmContainerID) {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.commonActions.getRegistry();
    const containerDestinations = registry.select(_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getGoogleTagContainerDestinations(gtmAccountID, gtmContainerID);
    if (containerDestinations === undefined) {
      yield fetchGetGoogleTagContainerDestinationsStore.actions.fetchGetGoogleTagContainerDestinations(gtmAccountID, gtmContainerID);
    }
  }
};
const baseSelectors = {
  /**
   * Gets the Google Tag container for the given measurementID.
   *
   * @since 1.92.0
   *
   * @param {Object} state         Data store's state.
   * @param {string} measurementID Measurement ID.
   * @return {Object|undefined} Google Tag container object, or undefined if not loaded.
   */
  getGoogleTagContainer(state, measurementID) {
    return state.containers[measurementID];
  },
  /**
   * Gets the Google Tag container destinations for the given accountID and containerID.
   *
   * @since 1.92.0
   *
   * @param {Object} state          Data store's state.
   * @param {string} gtmAccountID   Google Tag Manager account ID.
   * @param {string} gtmContainerID Google Tag Manager container ID.
   * @return {(Array.<Object>|undefined)} Google Tag container destinations list, or undefined if not loaded.
   */
  getGoogleTagContainerDestinations(state, gtmAccountID, gtmContainerID) {
    return state.containerDestinations[gtmAccountID]?.[gtmContainerID];
  }
};
const store = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.combineStores)(fetchGetGoogleTagContainerStore, fetchGetGoogleTagContainerDestinationsStore, {
  initialState: baseInitialState,
  actions: baseActions,
  controls: baseControls,
  reducer: baseReducer,
  resolvers: baseResolvers,
  selectors: baseSelectors
});
const initialState = store.initialState;
const actions = store.actions;
const controls = store.controls;
const reducer = store.reducer;
const resolvers = store.resolvers;
const selectors = store.selectors;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (store);

/***/ }),

/***/ "./js/modules/analytics-4/datastore/conversion-reporting.js":
/*!******************************************************************!*\
  !*** ./js/modules/analytics-4/datastore/conversion-reporting.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */   selectors: () => (/* binding */ selectors)
/* harmony export */ });
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_components_user_input_util_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/user-input/util/constants */ "./js/components/user-input/util/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/**
 * `modules/analytics-4` data store: conversion reporting.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* eslint-disable sitekit/jsdoc-no-unnamed-boolean-params */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */







const selectors = {
  /**
   * Checks whether the provided conversion reporting events are available.
   *
   * @since 1.135.0
   *
   * @param {Object}               state  Data store's state.
   * @param {string|Array<string>} events Conversion reporting events to check.
   * @return {(boolean|undefined)} True if all provided custom dimensions are available, otherwise false. Undefined if available custom dimensions are not loaded yet.
   */
  hasConversionReportingEvents: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.createRegistrySelector)(select => (state, events) => {
    // Ensure events is always an array, even if a string is passed.
    const eventsToCheck = Array.isArray(events) ? events : [events];
    const detectedEvents = select(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getDetectedEvents();
    if (!detectedEvents?.length) {
      return false;
    }
    return eventsToCheck.some(event => detectedEvents.includes(event));
  }),
  /**
   * Gets all conversion reporting inline data from this data store.
   *
   * Not intended to be used publicly; this is largely here so other selectors can
   * request data using the selector/resolver pattern.
   *
   * @since 1.140.0
   * @private
   *
   * @return {(Object|undefined)} Conversion reporting inline data.
   */
  getConversionReportingEventsChange: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.createRegistrySelector)(select => () => {
    const {
      getNewEvents,
      getLostEvents,
      getNewBadgeEvents
    } = select(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4);
    const newEvents = getNewEvents();
    const lostEvents = getLostEvents();
    const newBadgeEvents = getNewBadgeEvents();
    if (newEvents === undefined || lostEvents === undefined || newBadgeEvents === undefined) {
      return undefined;
    }
    return {
      newEvents,
      lostEvents,
      newBadgeEvents
    };
  }),
  /**
   * Checks if newEvents are present.
   *
   * @since 1.140.0
   *
   * @return {boolean|undefined} TRUE if `newEvents` are present, FALSE otherwise.
   */
  hasNewConversionReportingEvents: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.createRegistrySelector)(select => () => {
    const newEvents = select(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getNewEvents();
    if (newEvents === undefined) {
      return undefined;
    }
    return newEvents.length > 0;
  }),
  /**
   * Checks if lostEvents are present.
   *
   * @since 1.140.0
   *
   * @param {Object} state Data store's state.
   * @return {boolean|undefined} TRUE if `lostEvents` are present, FALSE otherwise.
   */
  hasLostConversionReportingEvents: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.createRegistrySelector)(select => () => {
    const lostEvents = select(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getLostEvents();
    if (lostEvents === undefined) {
      return undefined;
    }
    return lostEvents.length > 0;
  }),
  /**
   * Checks if there are key metrics widgets connected with the detected events for the supplied purpose answer.
   *
   * @since 1.141.0
   *
   * @param {boolean} useNewEvents Flag inclusion of detected new events, otherwise initial detected events will be used.
   * @return {boolean|undefined} TRUE if current site purpose will have any ACR key metrics widgets assigned to it, FALSE otherwise, and undefined if metrics are not loaded.
   */
  haveConversionEventsForTailoredMetrics: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.createRegistrySelector)(select => (state, useNewEvents) => {
    const conversionReportingEventsChange = useNewEvents ? select(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getConversionReportingEventsChange()?.newEvents : select(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getDetectedEvents();
    const currentTailoredMetrics = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).getAnswerBasedMetrics();
    const tailoredMetricsWithNewEvents = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).getAnswerBasedMetrics(null, conversionReportingEventsChange);
    return tailoredMetricsWithNewEvents?.some((metric, index) => metric !== currentTailoredMetrics?.[index]);
  }),
  /**
   * Checks if there are key metrics widgets that rely on the conversion events that have been lost.
   *
   * @since 1.142.0
   *
   * @return {boolean|undefined} TRUE if current metrics are depending on the conversion events that have been lost, FALSE otherwise, and undefined if event change data is not resolved.
   */
  haveLostEventsForCurrentMetrics: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.createRegistrySelector)(select => () => {
    const conversionEventWidgets = select(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getKeyMetricsConversionEventWidgets();
    const currentMetrics = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).getKeyMetrics();
    const conversionReportingLostEvents = select(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getConversionReportingEventsChange()?.lostEvents;
    return conversionReportingLostEvents?.some(event => conversionEventWidgets[event]?.some(widget => currentMetrics?.includes(widget)));
  }),
  /**
   * Returns the conversion events associated with the current site purpose.
   *
   * @since 1.142.0
   *
   * @return {Array|undefined} List of detected conversion events connected to the current site purpose, or undefined if data is not resolved.
   */
  getUserInputPurposeConversionEvents: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.createRegistrySelector)(select => () => {
    const userInputSettings = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).getUserInputSettings();
    const purpose = userInputSettings?.purpose?.values?.[0];
    const purposeEvents = _js_components_user_input_util_constants__WEBPACK_IMPORTED_MODULE_6__.USER_INPUT_PURPOSE_TO_CONVERSION_EVENTS_MAPPING[purpose];
    const detectedEvents = select(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getDetectedEvents();
    return purposeEvents?.reduce((acc, event) => {
      if (detectedEvents?.includes(event)) {
        return [...acc, event];
      }
      return acc;
    }, []);
  }),
  /**
   * Returns the conversion events if detected events are suitable for tailored metrics.
   *
   * @since 1.146.0
   *
   * @return {Array} List of detected conversion events or empty array.
   */
  shouldIncludeConversionTailoredMetrics: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.createRegistrySelector)(select => () => {
    const isGA4Connected = select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_MODULES).isModuleConnected(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4);
    if (!isGA4Connected) {
      return [];
    }
    const {
      haveConversionEventsForTailoredMetrics,
      getDetectedEvents
    } = select(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4);
    if (haveConversionEventsForTailoredMetrics()) {
      return getDetectedEvents() || [];
    }
    return [];
  }),
  /**
   * Gets conversion events related metrics.
   *
   * @since 1.142.0
   * @private
   *
   * @return {Object} Metrics list object.
   */
  getKeyMetricsConversionEventWidgets() {
    const leadRelatedMetrics = [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.KM_ANALYTICS_TOP_PAGES_DRIVING_LEADS, _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.KM_ANALYTICS_TOP_CITIES_DRIVING_LEADS, _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_LEADS];
    return {
      purchase: [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.KM_ANALYTICS_TOP_CITIES_DRIVING_PURCHASES, _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.KM_ANALYTICS_TOP_DEVICE_DRIVING_PURCHASES, _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_PURCHASES],
      add_to_cart: [_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.KM_ANALYTICS_TOP_CITIES_DRIVING_ADD_TO_CART, _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_ADD_TO_CART],
      contact: leadRelatedMetrics,
      submit_lead_form: leadRelatedMetrics,
      generate_lead: leadRelatedMetrics
    };
  },
  /**
   * Checks if there are conversion events for the user picked metrics.
   *
   * @since 1.142.0
   *
   * @param {boolean} useNewEvents Flag inclusion of detected new events, otherwise initial detected events will be used.
   * @return {boolean|undefined} `true` if there are any ACR key metrics based on the users existing selected metrics, `false` otherwise. Will return `undefined` if the data is not loaded yet.
   */
  haveConversionEventsForUserPickedMetrics: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.createRegistrySelector)(select => (state, useNewEvents) => {
    const conversionEventWidgets = select(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getKeyMetricsConversionEventWidgets();
    const userPickedKeyMetrics = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).getUserPickedMetrics();
    const conversionReportingEventsChange = useNewEvents ? select(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getConversionReportingEventsChange()?.newEvents : select(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getDetectedEvents();
    return conversionReportingEventsChange?.some(event => conversionEventWidgets[event]?.some(widget => {
      return !userPickedKeyMetrics?.includes(widget);
    }));
  }),
  /**
   * Checks if there are new conversion events after initial events were detected. Regardless of how KM were setup.
   *
   * @since 1.142.0
   *
   * @return {boolean} `true` if there are metrics related to the new conversion events that differ from already detected/selected ones, `false` otherwise.
   */
  haveConversionEventsWithDifferentMetrics: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.createRegistrySelector)(select => () => {
    const isGA4Connected = select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_MODULES).isModuleConnected(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4);
    if (!isGA4Connected) {
      return false;
    }
    const {
      getDetectedEvents,
      getConversionReportingEventsChange,
      haveConversionEventsForUserPickedMetrics,
      haveConversionEventsForTailoredMetrics,
      getKeyMetricsConversionEventWidgets
    } = select(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4);
    const detectedEvents = getDetectedEvents();
    const conversionReportingEventsChange = getConversionReportingEventsChange();
    if (!detectedEvents?.length || !conversionReportingEventsChange?.newEvents?.length ||
    // If events in detectedEvents do not differ from the new ones it means
    // it is the initial detection, since after initial detection newEvents will
    // only contain the difference in events.
    (0,lodash__WEBPACK_IMPORTED_MODULE_0__.isEqual)((0,_js_util__WEBPACK_IMPORTED_MODULE_7__.safelySort)(conversionReportingEventsChange?.newEvents), (0,_js_util__WEBPACK_IMPORTED_MODULE_7__.safelySort)(detectedEvents))) {
      return false;
    }
    const detectedLeadEvents = detectedEvents.filter(event => _constants__WEBPACK_IMPORTED_MODULE_4__.CONVERSION_REPORTING_LEAD_EVENTS.includes(event));
    const newLeadEvents = conversionReportingEventsChange.newEvents.filter(event => _constants__WEBPACK_IMPORTED_MODULE_4__.CONVERSION_REPORTING_LEAD_EVENTS.includes(event));
    const newNonLeadEvents = conversionReportingEventsChange.newEvents.filter(event => !_constants__WEBPACK_IMPORTED_MODULE_4__.CONVERSION_REPORTING_LEAD_EVENTS.includes(event));

    // If new events include only additional lead events return early.
    if (detectedLeadEvents.length > 1 && newLeadEvents.length > 0 && !newNonLeadEvents.length) {
      return false;
    }
    const {
      getUserPickedMetrics,
      getKeyMetrics
    } = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER);
    const userPickedMetrics = getUserPickedMetrics();
    const haveNewConversionEventsForUserPickedMetrics = haveConversionEventsForUserPickedMetrics(true);
    if (userPickedMetrics?.length && !haveNewConversionEventsForUserPickedMetrics) {
      return false;
    }
    const keyMetricsConversionEventWidgets = getKeyMetricsConversionEventWidgets();
    const newConversionEventKeyMetrics = [];

    // Pick all conversion event widgets associated with new events.
    for (const event in keyMetricsConversionEventWidgets) {
      if (conversionReportingEventsChange.newEvents.includes(event)) {
        newConversionEventKeyMetrics.push(...keyMetricsConversionEventWidgets[event]);
      }
    }
    const currentKeyMetrics = getKeyMetrics();
    const haveAllConversionEventMetrics = newConversionEventKeyMetrics.every(keyMetric => currentKeyMetrics?.includes(keyMetric));

    // If the current site purpose has all conversion event metrics,
    // or there are some metrics that can be added via "Add
    // metrics CTA", don't show the "View metrics" variation.
    if (!userPickedMetrics?.length && (haveConversionEventsForTailoredMetrics(true) || haveAllConversionEventMetrics)) {
      return false;
    }
    return true;
  })
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
  selectors
});

/***/ }),

/***/ "./js/modules/analytics-4/datastore/custom-dimensions-gathering-data.js":
/*!******************************************************************************!*\
  !*** ./js/modules/analytics-4/datastore/custom-dimensions-gathering-data.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   actions: () => (/* binding */ actions),
/* harmony export */   controls: () => (/* binding */ controls),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */   initialState: () => (/* binding */ initialState),
/* harmony export */   reducer: () => (/* binding */ reducer),
/* harmony export */   resolvers: () => (/* binding */ resolvers),
/* harmony export */   selectors: () => (/* binding */ selectors)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-api */ "googlesitekit-api");
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_api__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/data/create-fetch-store */ "./js/googlesitekit/data/create-fetch-store.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/**
 * `modules/analytics-4` data store: custom dimensions gathering data store.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* eslint-disable sitekit/jsdoc-no-unnamed-boolean-params */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */







const RECEIVE_CUSTOM_DIMENSION_GATHERING_DATA = 'RECEIVE_CUSTOM_DIMENSION_GATHERING_DATA';
const fetchSaveCustomDimensionDataAvailableStateStore = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_4__.createFetchStore)({
  baseName: 'saveCustomDimensionDataAvailableState',
  controlCallback: ({
    customDimension
  }) => (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_1__.set)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_6__.MODULE_SLUG_ANALYTICS_4, 'custom-dimension-data-available', {
    customDimension
  }),
  argsToParams: customDimension => ({
    customDimension
  }),
  validateParams: ({
    customDimension
  }) => {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()('string' === typeof customDimension && customDimension.length > 0, 'customDimension must be a non-empty string.');
  }
});

/*
 * The initial state shape is as follows:
 *
 * {
 *   customDimensionsGatheringData: {
 *     googlesitekit_post_date: undefined,
 *     googlesitekit_post_author: undefined,
 *     // etc.
 *   },
 * }
 */
const baseInitialState = {
  customDimensionsGatheringData: Object.keys(_constants__WEBPACK_IMPORTED_MODULE_5__.CUSTOM_DIMENSION_DEFINITIONS).reduce((initialStateSlice, customDimension) => ({
    ...initialStateSlice,
    [customDimension]: undefined
  }), {})
};
const baseActions = {
  /**
   * Receives gathering data state for a custom dimension.
   *
   * @since 1.113.0
   * @private
   *
   * @param {string}  customDimension Custom dimension slug.
   * @param {boolean} gatheringData   Gathering data.
   * @return {Object} Redux-style action.
   */
  receiveIsCustomDimensionGatheringData(customDimension, gatheringData) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()('string' === typeof customDimension && customDimension.length > 0, 'customDimension must be a non-empty string.');
    invariant__WEBPACK_IMPORTED_MODULE_0___default()('boolean' === typeof gatheringData, 'gatheringData must be a boolean.');
    return {
      payload: {
        customDimension,
        gatheringData
      },
      type: RECEIVE_CUSTOM_DIMENSION_GATHERING_DATA
    };
  },
  /**
   * Checks whether data is available for the custom dimension.
   *
   * If data is available, saves the data available state to the server.
   *
   * @since 1.113.0
   *
   * @param {string} customDimension Custom dimension slug.
   */
  *checkCustomDimensionDataAvailability(customDimension) {
    const {
      select,
      resolveSelect
    } = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.commonActions.getRegistry();
    yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.commonActions.await(resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getSettings());
    if (!select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).hasCustomDimensions(customDimension)) {
      yield baseActions.receiveIsCustomDimensionGatheringData(customDimension, true);
      return;
    }
    yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.commonActions.await(resolveSelect(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).getAuthentication());
    if (!select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).isAuthenticated()) {
      yield baseActions.receiveIsCustomDimensionGatheringData(customDimension, true);
      return;
    }
    const reportArgs = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.commonActions.await(resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getDataAvailabilityReportOptions(customDimension));
    if (!reportArgs) {
      yield baseActions.receiveIsCustomDimensionGatheringData(customDimension, true);
      return;
    }
    const report = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.commonActions.await(resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getReport(reportArgs));
    const hasReportError = !!select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [reportArgs]);
    const isGatheringData = hasReportError || !report?.rows?.length;
    yield baseActions.receiveIsCustomDimensionGatheringData(customDimension, isGatheringData);
    if (!isGatheringData) {
      yield fetchSaveCustomDimensionDataAvailableStateStore.actions.fetchSaveCustomDimensionDataAvailableState(customDimension);
    }
  }
};
const baseControls = {};
const baseReducer = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.createReducer)((state, {
  type,
  payload
}) => {
  switch (type) {
    case RECEIVE_CUSTOM_DIMENSION_GATHERING_DATA:
      {
        const {
          customDimension,
          gatheringData
        } = payload;
        state.customDimensionsGatheringData[customDimension] = gatheringData;
        break;
      }
    default:
      {
        break;
      }
  }
});
const baseResolvers = {
  *isCustomDimensionGatheringData(customDimension) {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.commonActions.getRegistry();

    // If the gatheringData flag is already set, return early.
    if (registry.select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).isCustomDimensionGatheringData(customDimension) !== undefined) {
      return;
    }

    // Module data needs to be resolved to determine the custom dimensions data availability state.
    yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.commonActions.await(registry.resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getModuleData());
    const dataAvailableOnLoad = registry.select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getCustomDimensionsDataAvailable()?.[customDimension];

    // If dataAvailableOnLoad is true, set gatheringData to false and do nothing else.
    if (dataAvailableOnLoad) {
      yield baseActions.receiveIsCustomDimensionGatheringData(customDimension, false);
      return;
    }
    yield baseActions.checkCustomDimensionDataAvailability(customDimension);
  },
  *getDataAvailabilityReportOptions() {
    const {
      resolveSelect
    } = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.commonActions.getRegistry();
    yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.commonActions.await(resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getPropertyCreateTime());
  }
};
const baseSelectors = {
  /**
   * Determines whether the custom dimension is still gathering data or not.
   *
   * @since 1.113.0
   *
   * @param {Object} state           Data store's state.
   * @param {string} customDimension Custom dimension slug.
   * @return {boolean|undefined} Returns TRUE if gathering data, otherwise FALSE. If the request is still being resolved, returns undefined.
   */
  isCustomDimensionGatheringData(state, customDimension) {
    return state.customDimensionsGatheringData[customDimension];
  },
  /**
   * Determines whether any of the provided custom dimensions are still gathering data.
   *
   * @since 1.113.0
   *
   * @param {Object}        state            Data store's state.
   * @param {Array<string>} customDimensions Array of custom dimension slugs.
   * @return {boolean|undefined} Returns TRUE if any of the provided custom dimensions are gathering data, otherwise FALSE.
   * 														 If any of the corresponding state is still being resolved, returns undefined.
   */
  areCustomDimensionsGatheringData: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.createRegistrySelector)(select => (state, customDimensions) => {
    const {
      isCustomDimensionGatheringData
    } = select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4);

    // Return undefined if any of the custom dimensions' gathering data state is undefined,
    // or true if any of the custom dimensions' gathering data state is true.
    for (const gatheringDataState of [undefined, true]) {
      if (customDimensions.some(dimension => isCustomDimensionGatheringData(dimension) === gatheringDataState)) {
        return gatheringDataState;
      }
    }

    // Otherwise, all custom dimensions' gathering data state is false.
    return false;
  }),
  /**
   * Gets the options for the data availability report.
   *
   * @since 1.114.0
   *
   * @param {Object} state           Data store's state.
   * @param {string} customDimension Custom dimension slug.
   * @return {Object|undefined} Returns the report options if the property is loaded, otherwise undefined.
   */
  getDataAvailabilityReportOptions: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.createRegistrySelector)(select => (state, customDimension) => {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(customDimension, 'customDimension is required.');
    const propertyID = select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getPropertyID();
    if (!propertyID) {
      return undefined;
    }
    const propertyCreateTime = select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getPropertyCreateTime();
    if (!propertyCreateTime) {
      return undefined;
    }
    const endDate = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).getReferenceDate();
    return {
      // Valid use of `new Date()` with an argument.
      // eslint-disable-next-line sitekit/no-direct-date
      startDate: (0,_js_util__WEBPACK_IMPORTED_MODULE_7__.getDateString)(new Date(propertyCreateTime)),
      endDate,
      dimensions: [`customEvent:${customDimension}`],
      dimensionFilters: {
        [`customEvent:${customDimension}`]: {
          filterType: 'emptyFilter',
          notExpression: true
        }
      },
      metrics: [{
        name: 'eventCount'
      }],
      limit: 1,
      reportID: 'analytics-4_get-data-availability-report-options_store:selector'
    };
  }),
  /**
   * Gets the errors for the data availability report.
   *
   * @since 1.114.0
   *
   * @param {Object} state            Data store's state.
   * @param {Array}  customDimensions Array of custom dimension slugs.
   * @return {Object} Returns an object of errors keyed by custom dimension slug.
   */
  getDataAvailabilityReportErrors: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.createRegistrySelector)(select => (state, customDimensions) => {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(customDimensions, 'customDimensions is required.');
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(Array.isArray(customDimensions), 'customDimensions must be an array.');
    const {
      getDataAvailabilityReportOptions,
      getErrorForSelector
    } = select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4);
    return customDimensions.reduce((errors, customDimension) => {
      const reportArgs = getDataAvailabilityReportOptions(customDimension);
      if (!reportArgs) {
        return errors;
      }
      const error = getErrorForSelector('getReport', [reportArgs]);
      if (error) {
        return {
          ...errors,
          [customDimension]: error
        };
      }
      return errors;
    }, {});
  })
};
const store = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.combineStores)(fetchSaveCustomDimensionDataAvailableStateStore, {
  actions: baseActions,
  controls: baseControls,
  initialState: baseInitialState,
  reducer: baseReducer,
  resolvers: baseResolvers,
  selectors: baseSelectors
});
const initialState = store.initialState;
const actions = store.actions;
const controls = store.controls;
const reducer = store.reducer;
const resolvers = store.resolvers;
const selectors = store.selectors;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (store);

/***/ }),

/***/ "./js/modules/analytics-4/datastore/custom-dimensions.js":
/*!***************************************************************!*\
  !*** ./js/modules/analytics-4/datastore/custom-dimensions.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   actions: () => (/* binding */ actions),
/* harmony export */   baseControls: () => (/* binding */ baseControls),
/* harmony export */   baseReducer: () => (/* binding */ baseReducer),
/* harmony export */   controls: () => (/* binding */ controls),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */   initialState: () => (/* binding */ initialState),
/* harmony export */   reducer: () => (/* binding */ reducer),
/* harmony export */   resolvers: () => (/* binding */ resolvers),
/* harmony export */   selectors: () => (/* binding */ selectors)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-api */ "googlesitekit-api");
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/data/create-fetch-store */ "./js/googlesitekit/data/create-fetch-store.js");
/* harmony import */ var _js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/validation */ "./js/modules/analytics-4/utils/validation.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_components_KeyMetrics_key_metrics_widgets__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/components/KeyMetrics/key-metrics-widgets */ "./js/components/KeyMetrics/key-metrics-widgets.js");
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/**
 * `modules/analytics-4` data store: custom-dimensions store.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Internal dependencies
 */









const customDimensionFields = ['parameterName', 'displayName', 'description', 'scope', 'disallowAdsPersonalization'];
const fetchCreateCustomDimensionStore = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_4__.createFetchStore)({
  baseName: 'createCustomDimension',
  controlCallback: ({
    propertyID,
    customDimension
  }) => (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__.set)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_7__.MODULE_SLUG_ANALYTICS_4, 'create-custom-dimension', {
    propertyID,
    customDimension
  }),
  argsToParams: (propertyID, customDimension) => ({
    propertyID,
    customDimension
  }),
  validateParams: ({
    propertyID,
    customDimension
  }) => {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_5__.isValidPropertyID)(propertyID), 'A valid GA4 propertyID is required.');
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,lodash__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(customDimension), 'Custom dimension must be a plain object.');
    Object.keys(customDimension).forEach(key => {
      invariant__WEBPACK_IMPORTED_MODULE_0___default()(customDimensionFields.includes(key), `Custom dimension must contain only valid keys. Invalid key: "${key}"`);
    });
  }
});
const fetchSyncAvailableCustomDimensionsStore = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_4__.createFetchStore)({
  baseName: 'syncAvailableCustomDimensions',
  controlCallback: () => (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__.set)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_7__.MODULE_SLUG_ANALYTICS_4, 'sync-custom-dimensions'),
  reducerCallback: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, dimensions) => {
    state.settings = state.settings || {};
    state.settings.availableCustomDimensions = dimensions;
  })
});
const baseInitialState = {
  customDimensionsBeingCreated: [],
  syncTimeoutID: undefined
};

// Actions
const SET_CUSTOM_DIMENSIONS_BEING_CREATED = 'SET_CUSTOM_DIMENSIONS_BEING_CREATED';
const SCHEDULE_SYNC_AVAILABLE_CUSTOM_DIMENSIONS = 'SCHEDULE_SYNC_AVAILABLE_CUSTOM_DIMENSIONS';
const SET_SYNC_TIMEOUT_ID = 'SET_SYNC_TIMEOUT_ID';
const baseActions = {
  /**
   * Creates custom dimensions and syncs them in the settings.
   *
   * @since 1.113.0
   */
  *createCustomDimensions() {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();

    // Wait for the necessary settings to be loaded before checking.
    yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(Promise.all([registry.resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getSettings(), registry.resolveSelect(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_8__.CORE_USER).getKeyMetricsSettings(), registry.resolveSelect(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_8__.CORE_USER).getUserInputSettings()]));
    const selectedMetricTiles = registry.select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_8__.CORE_USER).getKeyMetrics();

    // Extract required custom dimensions from selected metric tiles.
    const requiredCustomDimensions = selectedMetricTiles.flatMap(tileName => {
      const tile = _js_components_KeyMetrics_key_metrics_widgets__WEBPACK_IMPORTED_MODULE_9__.KEY_METRICS_WIDGETS[tileName];
      return tile?.requiredCustomDimensions || [];
    });

    // Deduplicate if any custom dimensions are repeated among tiles.
    const uniqueRequiredCustomDimensions = [...new Set(requiredCustomDimensions)];
    const availableCustomDimensions = registry.select(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getAvailableCustomDimensions();

    // Find out the missing custom dimensions.
    const missingCustomDimensions = uniqueRequiredCustomDimensions.filter(dimension => !availableCustomDimensions?.includes(dimension));

    // If there are no missing custom dimensions, bail.
    if (!missingCustomDimensions.length) {
      return;
    }
    yield {
      type: SET_CUSTOM_DIMENSIONS_BEING_CREATED,
      payload: {
        customDimensions: missingCustomDimensions
      }
    };
    const propertyID = registry.select(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getPropertyID();

    // Create missing custom dimensions.
    for (const dimension of missingCustomDimensions) {
      const dimensionData = _constants__WEBPACK_IMPORTED_MODULE_6__.CUSTOM_DIMENSION_DEFINITIONS[dimension];
      if (dimensionData) {
        const {
          error
        } = yield fetchCreateCustomDimensionStore.actions.fetchCreateCustomDimension(propertyID, dimensionData);

        // If the custom dimension was created successfully, mark it as gathering
        // data immediately so that it doesn't cause unnecessary report requests.
        if (!error) {
          registry.dispatch(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).receiveIsCustomDimensionGatheringData(dimension, true);
        }
      }
    }

    // Sync available custom dimensions.
    if (missingCustomDimensions.length > 0) {
      yield fetchSyncAvailableCustomDimensionsStore.actions.fetchSyncAvailableCustomDimensions();
    }
    yield {
      type: SET_CUSTOM_DIMENSIONS_BEING_CREATED,
      payload: {
        customDimensions: []
      }
    };
  },
  /**
   * Sets a schedule timeout ID for syncing available custom dimensions in state.
   *
   * @since 1.114.0
   *
   * @param {number} syncTimeoutID The timeout ID.
   * @return {Object} A redux-style action.
   */
  setSyncTimeoutID(syncTimeoutID) {
    return {
      payload: {
        syncTimeoutID
      },
      type: SET_SYNC_TIMEOUT_ID
    };
  },
  /**
   * Schedules a sync of available custom dimensions in state.
   *
   * @since 1.114.0
   */
  *scheduleSyncAvailableCustomDimensions() {
    yield {
      payload: {},
      type: SCHEDULE_SYNC_AVAILABLE_CUSTOM_DIMENSIONS
    };
  }
};
const baseControls = {
  [SCHEDULE_SYNC_AVAILABLE_CUSTOM_DIMENSIONS]: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistryControl)(({
    select,
    dispatch
  }) => () => {
    const {
      getSyncTimeoutID,
      isFetchingSyncAvailableCustomDimensions
    } = select(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4);
    const {
      fetchSyncAvailableCustomDimensions,
      setSyncTimeoutID
    } = dispatch(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4);
    const syncTimeoutID = getSyncTimeoutID();
    const isSyncing = isFetchingSyncAvailableCustomDimensions();
    if (!!syncTimeoutID) {
      clearTimeout(syncTimeoutID);
      setSyncTimeoutID(undefined);
    }
    if (isSyncing) {
      return;
    }
    const timeoutID = setTimeout(async () => {
      await fetchSyncAvailableCustomDimensions();
      setSyncTimeoutID(undefined);
    }, 2000);
    setSyncTimeoutID(timeoutID);
  })
};
const baseReducer = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, action) => {
  switch (action.type) {
    case SET_CUSTOM_DIMENSIONS_BEING_CREATED:
      {
        state.customDimensionsBeingCreated = action.payload.customDimensions;
        break;
      }
    case SET_SYNC_TIMEOUT_ID:
      {
        state.syncTimeoutID = action.payload.syncTimeoutID;
        break;
      }
    default:
      break;
  }
});
const baseResolvers = {
  *getAvailableCustomDimensions() {
    const {
      select,
      resolveSelect
    } = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    const {
      isAuthenticated,
      hasCapability
    } = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_8__.CORE_USER);
    const isGA4Connected = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(resolveSelect(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_10__.CORE_MODULES).isModuleConnected(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_7__.MODULE_SLUG_ANALYTICS_4));
    if (!isGA4Connected) {
      return;
    }

    // Wait for settings to be loaded before proceeding.
    yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getSettings());
    const availableCustomDimensions = select(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getAvailableCustomDimensions();
    if (availableCustomDimensions || !isAuthenticated()) {
      return;
    }

    // Wait for permissions to be loaded before checking if the user can manage options.
    yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(resolveSelect(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_8__.CORE_USER).getCapabilities());
    if (!hasCapability(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_8__.PERMISSION_MANAGE_OPTIONS)) {
      return;
    }
    yield fetchSyncAvailableCustomDimensionsStore.actions.fetchSyncAvailableCustomDimensions();
  }
};
const baseSelectors = {
  /**
   * Checks whether the provided custom dimensions are available.
   *
   * @since 1.113.0
   *
   * @param {Object}               state            Data store's state.
   * @param {string|Array<string>} customDimensions Custom dimensions to check.
   * @return {(boolean|undefined)} True if all provided custom dimensions are available, otherwise false. Undefined if available custom dimensions are not loaded yet.
   */
  hasCustomDimensions: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => (state, customDimensions) => {
    // Ensure customDimensions is always an array, even if a string is passed.
    const dimensionsToCheck = Array.isArray(customDimensions) ? customDimensions : [customDimensions];
    const availableCustomDimensions = select(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getAvailableCustomDimensions();
    if (availableCustomDimensions === undefined || availableCustomDimensions === null) {
      return undefined;
    }
    if (!availableCustomDimensions) {
      return false;
    }
    return dimensionsToCheck.every(dimension => availableCustomDimensions.includes(dimension));
  }),
  /**
   * Checks whether the provided custom dimension is being created.
   *
   * @since 1.113.0
   *
   * @param {Object} state           Data store's state.
   * @param {string} customDimension Custom dimensions to check.
   * @return {boolean} True the provided custom dimension is being created, otherwise false.
   */
  isCreatingCustomDimension(state, customDimension) {
    return !!state?.customDimensionsBeingCreated.includes(customDimension);
  },
  /**
   * Returns the error if encountered while creating the provided custom dimension.
   *
   * @since 1.113.0
   *
   * @param {Object} state           Data store's state.
   * @param {string} customDimension Custom dimension to obtain creation error for.
   * @return {(Object|undefined)} Error object if exists, otherwise undefined.
   */
  getCreateCustomDimensionError: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => (state, customDimension) => {
    const propertyID = select(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getPropertyID();
    return select(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getErrorForAction('createCustomDimension', [propertyID, _constants__WEBPACK_IMPORTED_MODULE_6__.CUSTOM_DIMENSION_DEFINITIONS[customDimension]]);
  }),
  /**
   * Determines whether the available custom dimensions are being synced.
   *
   * @since 1.113.0
   *
   * @param {Object} state Data store's state.
   * @return {boolean} TRUE if the available custom dimensions are being synced, otherwise FALSE.
   */
  isSyncingAvailableCustomDimensions: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => state => {
    return select(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).isFetchingSyncAvailableCustomDimensions() || !!state?.syncTimeoutID;
  }),
  /**
   * Gets the sync timeout ID from state.
   *
   * @since 1.114.0
   *
   * @param {Object} state Data store's state.
   * @return {number|undefined} The timeout ID. Undefined if unset.
   */
  getSyncTimeoutID(state) {
    return state?.syncTimeoutID;
  }
};
const store = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.combineStores)(fetchCreateCustomDimensionStore, fetchSyncAvailableCustomDimensionsStore, {
  initialState: baseInitialState,
  actions: baseActions,
  resolvers: baseResolvers,
  controls: baseControls,
  reducer: baseReducer,
  selectors: baseSelectors
});
const initialState = store.initialState;
const actions = store.actions;
const controls = store.controls;
const reducer = store.reducer;
const resolvers = store.resolvers;
const selectors = store.selectors;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (store);

/***/ }),

/***/ "./js/modules/analytics-4/datastore/enhanced-measurement.js":
/*!******************************************************************!*\
  !*** ./js/modules/analytics-4/datastore/enhanced-measurement.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   actions: () => (/* binding */ actions),
/* harmony export */   controls: () => (/* binding */ controls),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */   initialState: () => (/* binding */ initialState),
/* harmony export */   reducer: () => (/* binding */ reducer),
/* harmony export */   resolvers: () => (/* binding */ resolvers),
/* harmony export */   selectors: () => (/* binding */ selectors)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/data */ "../node_modules/@wordpress/data/build-module/factory.js");
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-api */ "googlesitekit-api");
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/data/create-fetch-store */ "./js/googlesitekit/data/create-fetch-store.js");
/* harmony import */ var _js_googlesitekit_data_utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/googlesitekit/data/utils */ "./js/googlesitekit/data/utils.js");
/* harmony import */ var _js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/validation */ "./js/modules/analytics-4/utils/validation.js");
/**
 * `modules/analytics-4` data store: enhanced measurement.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */







const enhancedMeasurementSettingsFields = ['name', 'streamEnabled', 'scrollsEnabled', 'outboundClicksEnabled', 'siteSearchEnabled', 'videoEngagementEnabled', 'fileDownloadsEnabled', 'pageChangesEnabled', 'formInteractionsEnabled', 'searchQueryParameter', 'uriQueryParameter'];
function validateEnhancedMeasurementSettings(enhancedMeasurementSettings) {
  invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,lodash__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(enhancedMeasurementSettings), 'Enhanced measurement settings must be an object.');
  Object.keys(enhancedMeasurementSettings).forEach(key => {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(enhancedMeasurementSettingsFields.includes(key), `Enhanced measurement settings must contain only valid keys. Invalid key: "${key}"`);
  });
}
const fetchStoreReducerCallback = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, enhancedMeasurementSettings, {
  propertyID,
  webDataStreamID
}) => {
  if (!state.enhancedMeasurement[propertyID]) {
    state.enhancedMeasurement[propertyID] = {};
  }
  if (!state.enhancedMeasurement[propertyID][webDataStreamID]) {
    state.enhancedMeasurement[propertyID][webDataStreamID] = {};
  }
  state.enhancedMeasurement[propertyID][webDataStreamID].settings = enhancedMeasurementSettings;
  state.enhancedMeasurement[propertyID][webDataStreamID].savedSettings = enhancedMeasurementSettings;
});
const fetchGetEnhancedMeasurementSettingsStore = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_6__.createFetchStore)({
  baseName: 'getEnhancedMeasurementSettings',
  controlCallback({
    propertyID,
    webDataStreamID
  }) {
    return (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__.get)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4, 'enhanced-measurement-settings', {
      propertyID,
      webDataStreamID
    }, {
      useCache: false
    });
  },
  reducerCallback: fetchStoreReducerCallback,
  argsToParams(propertyID, webDataStreamID) {
    return {
      propertyID,
      webDataStreamID
    };
  },
  validateParams({
    propertyID,
    webDataStreamID
  } = {}) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_8__.isValidPropertyID)(propertyID), 'A valid GA4 propertyID is required.');
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_8__.isValidWebDataStreamID)(webDataStreamID), 'A valid GA4 webDataStreamID is required.');
  }
});
const fetchUpdateEnhancedMeasurementSettingsStore = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_6__.createFetchStore)({
  baseName: 'updateEnhancedMeasurementSettings',
  controlCallback: ({
    propertyID,
    webDataStreamID,
    enhancedMeasurementSettings
  }) => (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__.set)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4, 'enhanced-measurement-settings', {
    propertyID,
    webDataStreamID,
    enhancedMeasurementSettings
  }),
  reducerCallback: fetchStoreReducerCallback,
  argsToParams: (propertyID, webDataStreamID, enhancedMeasurementSettings) => ({
    propertyID,
    webDataStreamID,
    enhancedMeasurementSettings
  }),
  validateParams: ({
    propertyID,
    webDataStreamID,
    enhancedMeasurementSettings
  }) => {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_8__.isValidPropertyID)(propertyID), 'A valid GA4 propertyID is required.');
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_8__.isValidWebDataStreamID)(webDataStreamID), 'A valid GA4 webDataStreamID is required.');
    validateEnhancedMeasurementSettings(enhancedMeasurementSettings);
  }
});

// Actions
const SET_ENHANCED_MEASUREMENT_SETTINGS = 'SET_ENHANCED_MEASUREMENT_SETTINGS';
const RESET_ENHANCED_MEASUREMENT_SETTINGS = 'RESET_ENHANCED_MEASUREMENT_SETTINGS';
const baseInitialState = {
  enhancedMeasurement: {}
};
const baseActions = {
  /**
   * Sets enhanced measurement settings.
   *
   * @since 1.110.0
   *
   * @param {string} propertyID      The GA4 property ID to set enhanced measurement settings for.
   * @param {string} webDataStreamID The GA4 web data stream ID to set enhanced measurement settings for.
   * @param {Object} settings        The GA4 enhanced measurement settings to set.
   * @return {Object} Redux-style action.
   */
  setEnhancedMeasurementSettings(propertyID, webDataStreamID, settings) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_8__.isValidPropertyID)(propertyID), 'A valid GA4 propertyID is required.');
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_8__.isValidWebDataStreamID)(webDataStreamID), 'A valid GA4 webDataStreamID is required.');
    validateEnhancedMeasurementSettings(settings);
    return {
      type: SET_ENHANCED_MEASUREMENT_SETTINGS,
      payload: {
        propertyID,
        webDataStreamID,
        settings
      }
    };
  },
  /**
   * Sets the `streamEnabled` setting for a given web data stream.
   *
   * @since 1.110.0
   *
   * @param {Object}  settings                 The GA4 enhanced measurement settings to set.
   * @param {string}  settings.propertyID      The GA4 property ID to set enhanced measurement settings for.
   * @param {string}  settings.webDataStreamID The GA4 web data stream ID to set enhanced measurement settings for.
   * @param {boolean} settings.enabled         Whether the `streamEnabled` setting should be enabled or not.
   * @return {Object} Redux-style action.
   */
  setEnhancedMeasurementStreamEnabled: (0,_js_googlesitekit_data_utils__WEBPACK_IMPORTED_MODULE_7__.createValidatedAction)(({
    propertyID,
    webDataStreamID,
    enabled
  }) => {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_8__.isValidPropertyID)(propertyID), 'A valid GA4 propertyID is required.');
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_8__.isValidWebDataStreamID)(webDataStreamID), 'A valid GA4 webDataStreamID is required.');
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(enabled !== undefined, 'enabled is required.');
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(typeof enabled === 'boolean', 'enabled must be a boolean.');
  }, function* ({
    propertyID,
    webDataStreamID,
    enabled
  }) {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    const currentSettings = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(registry.resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getEnhancedMeasurementSettings(propertyID, webDataStreamID));
    if (!currentSettings) {
      return null;
    }

    // TODO: Here we coerce `false` to `null`, for compatibility with the API response, which returns
    // `null` for all settings that are not enabled. This helps to ensure that we don't incorrectly consider
    // the setting to have changed in haveEnhancedMeasurementSettingsChanged().
    // We should address this in a more robust manner in future if we start using additional properties of
    // the settings object.
    const streamEnabled = enabled || null;
    const newSettings = {
      ...currentSettings,
      streamEnabled
    };
    return yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(registry.dispatch(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).setEnhancedMeasurementSettings(propertyID, webDataStreamID, newSettings));
  }),
  /**
   * Resets enhanced measurement settings to their saved values.
   *
   * @since 1.110.0
   *
   * @return {Object} Redux-style action.
   */
  resetEnhancedMeasurementSettings() {
    return {
      type: RESET_ENHANCED_MEASUREMENT_SETTINGS,
      payload: {}
    };
  },
  /**
   * Updates enhanced measurement settings in the server.
   *
   * @since 1.110.0
   *
   * @param {string} propertyID      The GA4 property ID to set enhanced measurement settings for.
   * @param {string} webDataStreamID The GA4 web data stream ID to set enhanced measurement settings for.
   * @return {Object} Redux-style action.
   */
  updateEnhancedMeasurementSettings: (0,_js_googlesitekit_data_utils__WEBPACK_IMPORTED_MODULE_7__.createValidatedAction)((propertyID, webDataStreamID) => {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_8__.isValidPropertyID)(propertyID), 'A valid GA4 propertyID is required.');
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_8__.isValidWebDataStreamID)(webDataStreamID), 'A valid GA4 webDataStreamID is required.');
  }, function* (propertyID, webDataStreamID) {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    const currentSettings = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(registry.resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getEnhancedMeasurementSettings(propertyID, webDataStreamID));
    if (!currentSettings) {
      return null;
    }
    return yield fetchUpdateEnhancedMeasurementSettingsStore.actions.fetchUpdateEnhancedMeasurementSettings(propertyID, webDataStreamID, currentSettings);
  })
};
const baseControls = {};
const baseReducer = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, {
  type,
  payload
}) => {
  switch (type) {
    case SET_ENHANCED_MEASUREMENT_SETTINGS:
      {
        const {
          propertyID,
          webDataStreamID,
          settings
        } = payload;
        if (!state.enhancedMeasurement[propertyID]) {
          state.enhancedMeasurement[propertyID] = {};
        }
        if (!state.enhancedMeasurement[propertyID][webDataStreamID]) {
          state.enhancedMeasurement[propertyID][webDataStreamID] = {};
        }
        state.enhancedMeasurement[propertyID][webDataStreamID].settings = settings;
        break;
      }
    case RESET_ENHANCED_MEASUREMENT_SETTINGS:
      {
        for (const propertyID in state.enhancedMeasurement) {
          for (const webDataStreamID in state.enhancedMeasurement[propertyID]) {
            const currentWebDataStream = state.enhancedMeasurement[propertyID][webDataStreamID];
            if (currentWebDataStream.savedSettings) {
              currentWebDataStream.settings = currentWebDataStream.savedSettings;
            } else {
              delete state.enhancedMeasurement[propertyID][webDataStreamID];
            }
          }
        }
        break;
      }
    default:
      {
        break;
      }
  }
});
function* waitForEnhancedMeasurementSettings(propertyID, webDataStreamID) {
  const {
    resolveSelect
  } = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
  yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getEnhancedMeasurementSettings(propertyID, webDataStreamID));
}
const baseResolvers = {
  *getEnhancedMeasurementSettings(propertyID, webDataStreamID) {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    // Only fetch enhanced measurement settings if there are none in the store for the given data stream.
    const enhancedMeasurementSettings = registry.select(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getEnhancedMeasurementSettings(propertyID, webDataStreamID);
    if (enhancedMeasurementSettings === undefined) {
      yield fetchGetEnhancedMeasurementSettingsStore.actions.fetchGetEnhancedMeasurementSettings(propertyID, webDataStreamID);
    }
  },
  isEnhancedMeasurementStreamEnabled: waitForEnhancedMeasurementSettings,
  isEnhancedMeasurementStreamAlreadyEnabled: waitForEnhancedMeasurementSettings
};
const baseSelectors = {
  /**
   * Gets the enhanced measurement settings for a given web data stream.
   *
   * @since 1.110.0
   *
   * @param {Object} state           Data store's state.
   * @param {string} propertyID      The GA4 property ID to fetch web data streams for.
   * @param {string} webDataStreamID The GA4 web data stream ID to fetch enhanced measurement settings for.
   * @return {(Object|undefined)} An object with enhanced measurement settings; `undefined` if not loaded.
   */
  getEnhancedMeasurementSettings(state, propertyID, webDataStreamID) {
    return state.enhancedMeasurement[propertyID]?.[webDataStreamID]?.settings;
  },
  /**
   * Checks if the `streamEnabled` setting is enabled for a given web data stream.
   *
   * @since 1.110.0
   *
   * @param {Object} state           Data store's state.
   * @param {string} propertyID      The GA4 property ID to check.
   * @param {string} webDataStreamID The GA4 web data stream ID to check.
   * @return {boolean}               True if `streamEnabled` is on, otherwise false; `undefined` if not loaded.
   */
  isEnhancedMeasurementStreamEnabled: (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_9__.createRegistrySelector)(select => (state, propertyID, webDataStreamID) => {
    const settings = select(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getEnhancedMeasurementSettings(propertyID, webDataStreamID);
    if (settings === undefined) {
      return undefined;
    }
    return !!settings.streamEnabled;
  }),
  /**
   * Checks if the `streamEnabled` setting is enabled for a given web data stream within the saved settings.
   *
   * @since 1.113.0
   *
   * @param {Object} state           Data store's state.
   * @param {string} propertyID      The GA4 property ID to check.
   * @param {string} webDataStreamID The GA4 web data stream ID to check.
   * @return {boolean}               True if `streamEnabled` is on, otherwise false; `undefined` if not loaded.
   */
  isEnhancedMeasurementStreamAlreadyEnabled(state, propertyID, webDataStreamID) {
    const {
      savedSettings
    } = state.enhancedMeasurement[propertyID]?.[webDataStreamID] || {};
    if (savedSettings === undefined) {
      return undefined;
    }
    return !!savedSettings.streamEnabled;
  },
  /**
   * Checks if the settings have changed compared to the saved settings for a given web data stream.
   *
   * @since 1.110.0
   *
   * @param {Object} state           Data store's state.
   * @param {string} propertyID      The GA4 property ID to check.
   * @param {string} webDataStreamID The GA4 web data stream ID to check.
   * @return {boolean}               True if settings have changed, otherwise false.
   */
  haveEnhancedMeasurementSettingsChanged(state, propertyID, webDataStreamID) {
    const {
      settings,
      savedSettings
    } = state.enhancedMeasurement[propertyID]?.[webDataStreamID] || {};
    return !(0,lodash__WEBPACK_IMPORTED_MODULE_1__.isEqual)(settings, savedSettings);
  },
  /**
   * This is a utility selector that checks if either the GA4 module settings, or the
   * current web data stream's enhanced measurement settings, have changed.
   *
   * @since 1.111.0
   *
   * @return {boolean} True if settings have changed, otherwise false.
   */
  haveAnyGA4SettingsChanged: (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_9__.createRegistrySelector)(select => () => {
    const {
      getPropertyID,
      getWebDataStreamID,
      haveEnhancedMeasurementSettingsChanged,
      haveSettingsChanged
    } = select(_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4);
    if (haveSettingsChanged()) {
      return true;
    }
    const propertyID = getPropertyID();
    const webDataStreamID = getWebDataStreamID();
    if ((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_8__.isValidPropertyID)(propertyID) && (0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_8__.isValidWebDataStreamID)(webDataStreamID) && haveEnhancedMeasurementSettingsChanged(propertyID, webDataStreamID)) {
      return true;
    }
    return false;
  })
};
const store = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.combineStores)(fetchGetEnhancedMeasurementSettingsStore, fetchUpdateEnhancedMeasurementSettingsStore, {
  initialState: baseInitialState,
  actions: baseActions,
  controls: baseControls,
  reducer: baseReducer,
  resolvers: baseResolvers,
  selectors: baseSelectors
});
const initialState = store.initialState;
const actions = store.actions;
const controls = store.controls;
const reducer = store.reducer;
const resolvers = store.resolvers;
const selectors = store.selectors;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (store);

/***/ }),

/***/ "./js/modules/analytics-4/datastore/index.js":
/*!***************************************************!*\
  !*** ./js/modules/analytics-4/datastore/index.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   actions: () => (/* binding */ actions),
/* harmony export */   controls: () => (/* binding */ controls),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */   initialState: () => (/* binding */ initialState),
/* harmony export */   reducer: () => (/* binding */ reducer),
/* harmony export */   registerStore: () => (/* binding */ registerStore),
/* harmony export */   resolvers: () => (/* binding */ resolvers),
/* harmony export */   selectors: () => (/* binding */ selectors)
/* harmony export */ });
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _accounts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./accounts */ "./js/modules/analytics-4/datastore/accounts.js");
/* harmony import */ var _audiences__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./audiences */ "./js/modules/analytics-4/datastore/audiences.js");
/* harmony import */ var _audience_settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./audience-settings */ "./js/modules/analytics-4/datastore/audience-settings.js");
/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./base */ "./js/modules/analytics-4/datastore/base.js");
/* harmony import */ var _containers__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./containers */ "./js/modules/analytics-4/datastore/containers.js");
/* harmony import */ var _key_events__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./key-events */ "./js/modules/analytics-4/datastore/key-events.js");
/* harmony import */ var _conversion_reporting__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./conversion-reporting */ "./js/modules/analytics-4/datastore/conversion-reporting.js");
/* harmony import */ var _custom_dimensions__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./custom-dimensions */ "./js/modules/analytics-4/datastore/custom-dimensions.js");
/* harmony import */ var _custom_dimensions_gathering_data__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./custom-dimensions-gathering-data */ "./js/modules/analytics-4/datastore/custom-dimensions-gathering-data.js");
/* harmony import */ var _enhanced_measurement__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./enhanced-measurement */ "./js/modules/analytics-4/datastore/enhanced-measurement.js");
/* harmony import */ var _partial_data__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./partial-data */ "./js/modules/analytics-4/datastore/partial-data.js");
/* harmony import */ var _properties__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./properties */ "./js/modules/analytics-4/datastore/properties.js");
/* harmony import */ var _report__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./report */ "./js/modules/analytics-4/datastore/report.js");
/* harmony import */ var _service__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./service */ "./js/modules/analytics-4/datastore/service.js");
/* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./settings */ "./js/modules/analytics-4/datastore/settings.js");
/* harmony import */ var _tags__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./tags */ "./js/modules/analytics-4/datastore/tags.js");
/* harmony import */ var _webdatastreams__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./webdatastreams */ "./js/modules/analytics-4/datastore/webdatastreams.js");
/* harmony import */ var _module_data__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./module-data */ "./js/modules/analytics-4/datastore/module-data.js");
/* harmony import */ var _js_googlesitekit_data_create_snapshot_store__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @/js/googlesitekit/data/create-snapshot-store */ "./js/googlesitekit/data/create-snapshot-store.js");
/**
 * `modules/analytics-4` data store
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */





















const store = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.combineStores)(_accounts__WEBPACK_IMPORTED_MODULE_2__["default"], _audiences__WEBPACK_IMPORTED_MODULE_3__["default"], _audience_settings__WEBPACK_IMPORTED_MODULE_4__["default"], _base__WEBPACK_IMPORTED_MODULE_5__["default"], _module_data__WEBPACK_IMPORTED_MODULE_19__["default"], _containers__WEBPACK_IMPORTED_MODULE_6__["default"], _key_events__WEBPACK_IMPORTED_MODULE_7__["default"], _conversion_reporting__WEBPACK_IMPORTED_MODULE_8__["default"], (0,_js_googlesitekit_data_create_snapshot_store__WEBPACK_IMPORTED_MODULE_20__.createSnapshotStore)(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4), _custom_dimensions__WEBPACK_IMPORTED_MODULE_9__["default"], _custom_dimensions_gathering_data__WEBPACK_IMPORTED_MODULE_10__["default"], _enhanced_measurement__WEBPACK_IMPORTED_MODULE_11__["default"], _partial_data__WEBPACK_IMPORTED_MODULE_12__["default"], _properties__WEBPACK_IMPORTED_MODULE_13__["default"], _report__WEBPACK_IMPORTED_MODULE_14__["default"], _settings__WEBPACK_IMPORTED_MODULE_16__["default"], _service__WEBPACK_IMPORTED_MODULE_15__["default"], _tags__WEBPACK_IMPORTED_MODULE_17__["default"], _webdatastreams__WEBPACK_IMPORTED_MODULE_18__["default"]);
const initialState = store.initialState;
const actions = store.actions;
const controls = store.controls;
const reducer = store.reducer;
const resolvers = store.resolvers;
const selectors = store.selectors;
function registerStore(registry) {
  registry.registerStore(_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4, store);
}
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (store);

/***/ }),

/***/ "./js/modules/analytics-4/datastore/key-events.js":
/*!********************************************************!*\
  !*** ./js/modules/analytics-4/datastore/key-events.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   actions: () => (/* binding */ actions),
/* harmony export */   controls: () => (/* binding */ controls),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */   initialState: () => (/* binding */ initialState),
/* harmony export */   reducer: () => (/* binding */ reducer),
/* harmony export */   resolvers: () => (/* binding */ resolvers),
/* harmony export */   selectors: () => (/* binding */ selectors)
/* harmony export */ });
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-api */ "googlesitekit-api");
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_api__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/data/create-fetch-store */ "./js/googlesitekit/data/create-fetch-store.js");
/**
 * `modules/analytics-4` data store: key events.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */





const fetchGetKeyEventsStore = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_4__.createFetchStore)({
  baseName: 'getKeyEvents',
  controlCallback: () => {
    return (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_0__.get)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__.MODULE_SLUG_ANALYTICS_4, 'key-events', {});
  },
  reducerCallback: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.createReducer)((state, keyEvents) => {
    state.keyEvents = keyEvents;
  })
});
const baseInitialState = {
  keyEvents: undefined
};
const baseResolvers = {
  *getKeyEvents() {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.commonActions.getRegistry();
    const existingKeyEvents = registry.select(_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getKeyEvents();

    // If there are already `keyEvents` loaded in state, consider it fulfilled
    // and don't make an API request.
    if (existingKeyEvents) {
      return;
    }
    yield fetchGetKeyEventsStore.actions.fetchGetKeyEvents();
  }
};
const baseSelectors = {
  /**
   * Gets GA4 key events.
   *
   * @since 1.96.0
   * @since 1.99.0 Removed the `propertyID` parameter.
   * @since 1.155.0 Renamed from `getConversionEvents` to `getKeyEvents`.
   *
   * @param {Object} state Data store's state.
   * @return {(Array.<Object>|undefined)} GA4 key events; `undefined` if not loaded.
   */
  getKeyEvents(state) {
    return state.keyEvents;
  }
};
const store = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.combineStores)(fetchGetKeyEventsStore, {
  initialState: baseInitialState,
  resolvers: baseResolvers,
  selectors: baseSelectors
});
const initialState = store.initialState;
const actions = store.actions;
const controls = store.controls;
const reducer = store.reducer;
const resolvers = store.resolvers;
const selectors = store.selectors;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (store);

/***/ }),

/***/ "./js/modules/analytics-4/datastore/module-data.js":
/*!*********************************************************!*\
  !*** ./js/modules/analytics-4/datastore/module-data.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   actions: () => (/* binding */ actions),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */   initialState: () => (/* binding */ initialState),
/* harmony export */   reducer: () => (/* binding */ reducer),
/* harmony export */   resolvers: () => (/* binding */ resolvers),
/* harmony export */   selectors: () => (/* binding */ selectors)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/**
 * `modules/analytics-4` data store: module data.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */




function getModuleDataProperty(propName) {
  return (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.createRegistrySelector)(select => () => {
    const moduleData = select(_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getModuleData() || [];
    return moduleData[propName];
  });
}
const RECEIVE_MODULE_DATA = 'RECEIVE_MODULE_DATA';
const SET_RESOURCE_DATA_AVAILABILITY_DATE = 'SET_RESOURCE_DATA_AVAILABILITY_DATE';
const initialState = {
  moduleData: {
    newEvents: undefined,
    lostEvents: undefined,
    newBadgeEvents: undefined,
    hasMismatchedTag: undefined,
    isWebDataStreamUnavailable: undefined,
    resourceAvailabilityDates: undefined
  }
};
const actions = {
  /**
   * Stores module data in the datastore.
   *
   * @since 1.148.0
   * @private
   *
   * @param {Object} data Module data object.
   * @return {Object} Redux-style action.
   */
  receiveModuleData(data) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(data, 'data is required.');
    return {
      payload: data,
      type: RECEIVE_MODULE_DATA
    };
  },
  /**
   * Sets the data availability date for a specific resource.
   *
   * @since 1.127.0
   * @since 1.160.0 Moved to `module-data` store partial from `partial-data` store partial.
   *
   * @param {string} resourceSlug Resource slug.
   * @param {string} resourceType Resource type.
   * @param {number} date         Data availability date.
   * @return {Object} Redux-style action.
   */
  setResourceDataAvailabilityDate(resourceSlug, resourceType, date) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()('string' === typeof resourceSlug && resourceSlug.length > 0, 'resourceSlug must be a non-empty string.');
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(_constants__WEBPACK_IMPORTED_MODULE_2__.RESOURCE_TYPES.includes(resourceType), 'resourceType must be a valid resource type.');
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(Number.isInteger(date), 'date must be an integer.');
    return {
      payload: {
        resourceSlug,
        resourceType,
        date
      },
      type: SET_RESOURCE_DATA_AVAILABILITY_DATE
    };
  }
};
const reducer = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.createReducer)((state, {
  payload,
  type
}) => {
  switch (type) {
    case RECEIVE_MODULE_DATA:
      {
        const {
          tagIDMismatch,
          resourceAvailabilityDates,
          customDimensionsDataAvailable,
          newEvents,
          lostEvents,
          newBadgeEvents,
          isWebDataStreamUnavailable
        } = payload;

        // Replace empty array value with empty object in resourceAvailabilityDates object.
        const replacedResourceAvailabilityDates = Object.entries(resourceAvailabilityDates || {}).reduce((acc, [key, value]) => ({
          ...acc,
          [key]: Array.isArray(value) ? {} : value
        }), {});
        const moduleData = {
          hasMismatchedTag: !!tagIDMismatch,
          resourceAvailabilityDates: replacedResourceAvailabilityDates,
          customDimensionsDataAvailable,
          newEvents,
          lostEvents,
          newBadgeEvents,
          isWebDataStreamUnavailable
        };
        state.moduleData = moduleData;
        break;
      }
    case SET_RESOURCE_DATA_AVAILABILITY_DATE:
      {
        const {
          resourceSlug,
          resourceType,
          date
        } = payload;
        if (state.moduleData.resourceAvailabilityDates === undefined) {
          state.moduleData.resourceAvailabilityDates = {};
        }
        if (state.moduleData.resourceAvailabilityDates[resourceType] === undefined) {
          state.moduleData.resourceAvailabilityDates[resourceType] = {};
        }
        state.moduleData.resourceAvailabilityDates[resourceType][resourceSlug] = date;
        break;
      }
    default:
      {
        break;
      }
  }
});
const resolvers = {
  *getModuleData() {
    const {
      resolveSelect
    } = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.commonActions.getRegistry();
    const moduleData = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.commonActions.await(resolveSelect(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_MODULES).getModuleInlineData(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_3__.MODULE_SLUG_ANALYTICS_4));
    if (!moduleData) {
      return;
    }
    yield actions.receiveModuleData(moduleData);
  }
};
const selectors = {
  /**
   * Gets all module data from this data store.
   *
   * Not intended to be used publicly; this is largely here so other selectors can
   * request data using the selector/resolver pattern.
   *
   * @since 1.148.0
   * @private
   *
   * @param {Object} state Data store's state.
   * @return {(Object|undefined)} Module data.
   */
  getModuleData(state) {
    return state.moduleData;
  },
  /**
   * Checks if GA4 has mismatched Google Tag ID.
   *
   * @since 1.96.0
   * @since 1.148.0 Moved over from properties data store partial.
   *
   * @param {Object} state Data store's state.
   * @return {boolean} If GA4 has mismatched Google Tag ID.
   */
  hasMismatchedGoogleTagID: getModuleDataProperty('hasMismatchedTag'),
  /**
   * Gets the data availability date for all resources.
   *
   * @since 1.127.0
   * @since 1.160.0 Moved over from partial-data store partial.
   *
   * @param {Object} state Data store's state.
   * @return {Object} Resource data availability dates. Undefined if not loaded.
   */
  getResourceDataAvailabilityDates: getModuleDataProperty('resourceAvailabilityDates'),
  /**
   * Gets the custom dimensions data availability object.
   *
   * @since 1.160.0
   *
   * @param {Object} state Data store's state.
   * @return {Object|undefined} Object mapping custom dimension slugs to their data availability state.
   */
  getCustomDimensionsDataAvailable: getModuleDataProperty('customDimensionsDataAvailable'),
  /**
   * Gets new events data.
   *
   * @since 1.148.0
   *
   * @param {Object} state Data store's state.
   * @return {Array|undefined} New events array.
   */
  getNewEvents: getModuleDataProperty('newEvents'),
  /**
   * Gets lost events data.
   *
   * @since 1.148.0
   *
   * @param {Object} state Data store's state.
   * @return {Array|undefined} Lost events array.
   */
  getLostEvents: getModuleDataProperty('lostEvents'),
  /**
   * Gets new badge events data.
   *
   * @since 1.148.0
   *
   * @param {Object} state Data store's state.
   * @return {Array|undefined} New badge events array.
   */
  getNewBadgeEvents: getModuleDataProperty('newBadgeEvents'),
  /**
   * Checks if the Web Data Stream is unavailable.
   *
   * @since 1.159.0
   *
   * @return {boolean|undefined} TRUE if the Web Data Stream is unavailable, FALSE if available or not checked, undefined if not loaded.
   */
  isWebDataStreamUnavailable: getModuleDataProperty('isWebDataStreamUnavailable')
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
  initialState,
  actions,
  reducer,
  resolvers,
  selectors
});

/***/ }),

/***/ "./js/modules/analytics-4/datastore/partial-data.js":
/*!**********************************************************!*\
  !*** ./js/modules/analytics-4/datastore/partial-data.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   actions: () => (/* binding */ actions),
/* harmony export */   controls: () => (/* binding */ controls),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */   initialState: () => (/* binding */ initialState),
/* harmony export */   reducer: () => (/* binding */ reducer),
/* harmony export */   resolvers: () => (/* binding */ resolvers),
/* harmony export */   selectors: () => (/* binding */ selectors)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-api */ "googlesitekit-api");
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_api__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/data/create-fetch-store */ "./js/googlesitekit/data/create-fetch-store.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/**
 * `modules/analytics-4` data store: partial data store.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */







const fetchSaveResourceDataAvailabilityDateStore = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_3__.createFetchStore)({
  baseName: 'saveResourceDataAvailabilityDate',
  controlCallback: ({
    resourceSlug,
    resourceType,
    date
  }) => (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_1__.set)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_7__.MODULE_SLUG_ANALYTICS_4, 'save-resource-data-availability-date', {
    resourceSlug,
    resourceType,
    date
  }),
  argsToParams: (resourceSlug, resourceType, date) => ({
    resourceSlug,
    resourceType,
    date
  }),
  validateParams: ({
    resourceSlug,
    resourceType,
    date
  }) => {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()('string' === typeof resourceSlug && resourceSlug.length > 0, 'resourceSlug must be a non-empty string.');
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(_constants__WEBPACK_IMPORTED_MODULE_6__.RESOURCE_TYPES.includes(resourceType), 'resourceType must be a valid resource type.');
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(Number.isInteger(date), 'date must be an integer.');
  }
});
const baseActions = {};
const baseControls = {};
const baseResolvers = {
  *getResourceDataAvailabilityDate(resourceSlug, resourceType) {
    const {
      dispatch,
      select,
      resolveSelect
    } = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.commonActions.getRegistry();
    if (select(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getResourceDataAvailabilityDate(resourceSlug, resourceType) !== undefined) {
      return;
    }

    // Module data needs to be resolved to determine the resource data availability date.
    yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.commonActions.await(resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getModuleData());
    const resourceAvailabilityDates = select(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getResourceDataAvailabilityDates();
    if (resourceAvailabilityDates[resourceType][resourceSlug] === undefined) {
      // Ensure the settings are loaded.
      yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.commonActions.await(Promise.all([resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getSettings(), resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getAudienceSettings()]));

      // Validate if the resourceSlug is a valid resource.
      switch (resourceType) {
        case _constants__WEBPACK_IMPORTED_MODULE_6__.RESOURCE_TYPE_AUDIENCE:
          yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.commonActions.await(resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getOrSyncAvailableAudiences());
          if (!select(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).hasAudiences(resourceSlug)) {
            return;
          }
          break;
        case _constants__WEBPACK_IMPORTED_MODULE_6__.RESOURCE_TYPE_CUSTOM_DIMENSION:
          if (!select(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).hasCustomDimensions(resourceSlug)) {
            return;
          }
          break;
        case _constants__WEBPACK_IMPORTED_MODULE_6__.RESOURCE_TYPE_PROPERTY:
          if (select(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getPropertyID() !== resourceSlug) {
            return;
          }
          break;
        default:
          return;
      }
      yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.commonActions.await(resolveSelect(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER).getAuthentication());

      // Return early if user is not authenticated.
      if (!select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER).isAuthenticated()) {
        yield dispatch(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).setResourceDataAvailabilityDate(resourceSlug, resourceType, 0);
        return;
      }
      const reportArgs = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.commonActions.await(resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getPartialDataReportOptions(resourceSlug, resourceType));

      // Return early if reportArgs is not available.
      if (!reportArgs) {
        return;
      }
      const report = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.commonActions.await(resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getReport(reportArgs));
      const hasReportError = !!select(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [reportArgs]);
      const isDataAvailable = !hasReportError && report?.rows?.[0]?.dimensionValues?.[0]?.value?.length;
      if (isDataAvailable) {
        const dataAvailabilityDate = Number(report.rows[0].dimensionValues[0].value);
        yield dispatch(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).setResourceDataAvailabilityDate(resourceSlug, resourceType, dataAvailabilityDate);
        yield fetchSaveResourceDataAvailabilityDateStore.actions.fetchSaveResourceDataAvailabilityDate(resourceSlug, resourceType, dataAvailabilityDate);
      } else {
        yield dispatch(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).setResourceDataAvailabilityDate(resourceSlug, resourceType, 0);
      }
    }
  },
  *getPartialDataReportOptions() {
    const {
      resolveSelect
    } = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.commonActions.getRegistry();
    yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.commonActions.await(resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getPropertyCreateTime());
  }
};
const baseSelectors = {
  /**
   * Gets the data availability date for a specific resource.
   *
   * @since 1.127.0
   *
   * @param {Object} state        Data store's state.
   * @param {string} resourceSlug Resource slug.
   * @param {string} resourceType Resource type.
   * @return {number} Resource data availability date. Undefined if not loaded.
   */
  getResourceDataAvailabilityDate: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.createRegistrySelector)(select => (state, resourceSlug, resourceType) => select(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getModuleData()?.resourceAvailabilityDates?.[resourceType]?.[resourceSlug]),
  /**
   * Gets whether the given resource is in partial data state.
   *
   * @since 1.127.0
   *
   * @param {Object} state        Data store's state.
   * @param {string} resourceSlug Resource slug.
   * @param {string} resourceType Resource type.
   * @return {boolean} Returns TRUE if partial data, otherwise FALSE or undefined while loading.
   */
  isResourcePartialData: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.createRegistrySelector)(select => (state, resourceSlug, resourceType) => {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()('string' === typeof resourceSlug && resourceSlug.length > 0, 'resourceSlug must be a non-empty string.');
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(_constants__WEBPACK_IMPORTED_MODULE_6__.RESOURCE_TYPES.includes(resourceType), 'resourceType must be a valid resource type.');
    const analyticsGatheringData = select(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).isGatheringData();
    if (analyticsGatheringData === undefined) {
      return undefined;
    }

    // If the GA property is in gathering data state, the resource is in partial data state.
    if (analyticsGatheringData) {
      return true;
    }
    const dataAvailabilityDate = select(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getResourceDataAvailabilityDate(resourceSlug, resourceType);
    if (dataAvailabilityDate === undefined) {
      return undefined;
    }

    // Assume partial data if the data availability date is not available.
    if (dataAvailabilityDate === 0) {
      return true;
    }
    const {
      startDate
    } = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER).getDateRangeDates({
      offsetDays: _constants__WEBPACK_IMPORTED_MODULE_6__.DATE_RANGE_OFFSET
    });

    // TODO: use `replaceAll` instead when we upgrade our Node version.
    const startDateYYYYMMDD = Number(startDate.replace(/-/g, ''));
    return dataAvailabilityDate > startDateYYYYMMDD;
  }),
  /**
   * Gets whether the given audience is in partial data state.
   *
   * @since 1.127.0
   *
   * @param {Object} state                Data store's state.
   * @param {string} audienceResourceName Audience resource name.
   * @return {boolean} Returns TRUE if partial data, otherwise FALSE or undefined while loading.
   */
  isAudiencePartialData: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.createRegistrySelector)(select => (state, audienceResourceName) => select(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).isResourcePartialData(audienceResourceName, _constants__WEBPACK_IMPORTED_MODULE_6__.RESOURCE_TYPE_AUDIENCE)),
  /**
   * Gets whether the given custom dimension is in partial data state.
   *
   * @since 1.127.0
   *
   * @param {Object} state               Data store's state.
   * @param {string} customDimensionSlug Custom dimension slug.
   * @return {boolean} Returns TRUE if partial data, otherwise FALSE or undefined while loading.
   */
  isCustomDimensionPartialData: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.createRegistrySelector)(select => (state, customDimensionSlug) => select(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).isResourcePartialData(customDimensionSlug, _constants__WEBPACK_IMPORTED_MODULE_6__.RESOURCE_TYPE_CUSTOM_DIMENSION)),
  /**
   * Gets whether the given property is in partial data state.
   *
   * @since 1.127.0
   *
   * @param {Object} state      Data store's state.
   * @param {string} propertyID Property ID.
   * @return {boolean} Returns TRUE if partial data, otherwise FALSE or undefined while loading.
   */
  isPropertyPartialData: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.createRegistrySelector)(select => (state, propertyID) => select(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).isResourcePartialData(propertyID, _constants__WEBPACK_IMPORTED_MODULE_6__.RESOURCE_TYPE_PROPERTY)),
  /**
   * Gets report options for determining data availability date for a given resource.
   *
   * @since 1.127.0
   *
   * @param {Object} state        Data store's state.
   * @param {string} resourceSlug Resource slug.
   * @param {string} resourceType Resource type.
   * @return {Object|undefined} Report options for determining data availability date. Undefined if not available.
   */
  getPartialDataReportOptions: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.createRegistrySelector)(select => (state, resourceSlug, resourceType) => {
    const propertyID = select(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getPropertyID();
    if (!propertyID) {
      return undefined;
    }
    const propertyCreateTime = select(_constants__WEBPACK_IMPORTED_MODULE_6__.MODULES_ANALYTICS_4).getPropertyCreateTime();
    if (!propertyCreateTime) {
      return undefined;
    }

    // Valid use of `new Date()` with an argument.
    // eslint-disable-next-line sitekit/no-direct-date
    const startDate = (0,_js_util__WEBPACK_IMPORTED_MODULE_5__.getDateString)(new Date(propertyCreateTime));
    const endDate = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER).getReferenceDate();
    switch (resourceType) {
      case _constants__WEBPACK_IMPORTED_MODULE_6__.RESOURCE_TYPE_AUDIENCE:
        return {
          startDate,
          endDate,
          dimensions: ['date', 'audienceResourceName'],
          dimensionFilters: {
            audienceResourceName: resourceSlug
          },
          metrics: ['totalUsers'],
          orderby: [{
            dimension: {
              dimensionName: 'date'
            }
          }],
          limit: 1,
          reportID: 'analytics-4_get-partial-data-report-options_store:selector_RESOURCE_TYPE_AUDIENCE'
        };
      case _constants__WEBPACK_IMPORTED_MODULE_6__.RESOURCE_TYPE_CUSTOM_DIMENSION:
        return {
          startDate,
          endDate,
          dimensions: ['date', `customEvent:${resourceSlug}`],
          metrics: ['eventCount'],
          limit: 1,
          reportID: 'analytics-4_get-partial-data-report-options_store:selector_RESOURCE_TYPE_CUSTOM_DIMENSION'
        };
      case _constants__WEBPACK_IMPORTED_MODULE_6__.RESOURCE_TYPE_PROPERTY:
        return {
          startDate,
          endDate,
          dimensions: ['date'],
          metrics: ['totalUsers'],
          limit: 1,
          reportID: 'analytics-4_get-partial-data-report-options_store:selector_RESOURCE_TYPE_PROPERTY'
        };
      default:
        return undefined;
    }
  })
};
const store = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_2__.combineStores)(fetchSaveResourceDataAvailabilityDateStore, {
  actions: baseActions,
  controls: baseControls,
  resolvers: baseResolvers,
  selectors: baseSelectors
});
const initialState = store.initialState;
const actions = store.actions;
const controls = store.controls;
const reducer = store.reducer;
const resolvers = store.resolvers;
const selectors = store.selectors;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (store);

/***/ }),

/***/ "./js/modules/analytics-4/datastore/properties.js":
/*!********************************************************!*\
  !*** ./js/modules/analytics-4/datastore/properties.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   actions: () => (/* binding */ actions),
/* harmony export */   controls: () => (/* binding */ controls),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */   initialState: () => (/* binding */ initialState),
/* harmony export */   reducer: () => (/* binding */ reducer),
/* harmony export */   resolvers: () => (/* binding */ resolvers),
/* harmony export */   selectors: () => (/* binding */ selectors)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @wordpress/data */ "../node_modules/@wordpress/data/build-module/factory.js");
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-api */ "googlesitekit-api");
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_modules_tagmanager_datastore_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/modules/tagmanager/datastore/constants */ "./js/modules/tagmanager/datastore/constants.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/googlesitekit/data/create-fetch-store */ "./js/googlesitekit/data/create-fetch-store.js");
/* harmony import */ var _js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/validation */ "./js/modules/analytics-4/utils/validation.js");
/* harmony import */ var _js_googlesitekit_data_utils__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/js/googlesitekit/data/utils */ "./js/googlesitekit/data/utils.js");
/* harmony import */ var _js_googlesitekit_api_cache__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/js/googlesitekit/api/cache */ "./js/googlesitekit/api/cache.js");
/**
 * `modules/analytics-4` data store: properties.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* eslint-disable sitekit/jsdoc-no-unnamed-boolean-params */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */













const fetchGetPropertyStore = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_11__.createFetchStore)({
  baseName: 'getProperty',
  controlCallback({
    propertyID
  }) {
    return (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__.get)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_9__.MODULE_SLUG_ANALYTICS_4, 'property', {
      propertyID
    }, {
      useCache: false
    });
  },
  reducerCallback: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, property, {
    propertyID
  }) => {
    state.propertiesByID = state.propertiesByID || {};
    state.propertiesByID[propertyID] = property;
  }),
  argsToParams(propertyID) {
    return {
      propertyID
    };
  },
  validateParams({
    propertyID
  } = {}) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(propertyID, 'propertyID is required.');
  }
});
const fetchGetPropertiesStore = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_11__.createFetchStore)({
  baseName: 'getProperties',
  controlCallback({
    accountID
  }) {
    return (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__.get)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_9__.MODULE_SLUG_ANALYTICS_4, 'properties', {
      accountID
    }, {
      useCache: false
    });
  },
  reducerCallback: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, properties, {
    accountID
  }) => {
    state.properties = state.properties || {};
    state.propertiesByID = state.propertiesByID || {};
    state.properties[accountID] = properties;
    for (const property of properties) {
      state.propertiesByID[property._id] = property;
    }
  }),
  argsToParams(accountID) {
    return {
      accountID
    };
  },
  validateParams({
    accountID
  } = {}) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(accountID, 'accountID is required.');
  }
});
const fetchCreatePropertyStore = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_11__.createFetchStore)({
  baseName: 'createProperty',
  controlCallback({
    accountID
  }) {
    return (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__.set)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_9__.MODULE_SLUG_ANALYTICS_4, 'create-property', {
      accountID
    });
  },
  reducerCallback: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, property, {
    accountID
  }) => {
    state.properties = state.properties || {};
    if (!state.properties[accountID]) {
      state.properties[accountID] = [];
    }
    state.properties[accountID].push(property);
  }),
  argsToParams(accountID) {
    return {
      accountID
    };
  },
  validateParams({
    accountID
  } = {}) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(accountID, 'accountID is required.');
  }
});
const fetchGetGoogleTagSettingsStore = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_11__.createFetchStore)({
  baseName: 'getGoogleTagSettings',
  controlCallback({
    measurementID
  }) {
    return (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__.get)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_9__.MODULE_SLUG_ANALYTICS_4, 'google-tag-settings', {
      measurementID
    });
  },
  reducerCallback: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, googleTagSettings, {
    measurementID
  }) => {
    if (!state.googleTagSettings) {
      state.googleTagSettings = {};
    }
    state.googleTagSettings[measurementID] = googleTagSettings;
  }),
  argsToParams(measurementID) {
    return {
      measurementID
    };
  },
  validateParams({
    measurementID
  } = {}) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(measurementID, 'measurementID is required.');
  }
});
const fetchSetGoogleTagIDMismatch = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_11__.createFetchStore)({
  baseName: 'setGoogleTagIDMismatch',
  controlCallback({
    hasMismatchedTag
  }) {
    return (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__.set)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_9__.MODULE_SLUG_ANALYTICS_4, 'set-google-tag-id-mismatch', {
      hasMismatchedTag
    });
  },
  reducerCallback: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, hasMismatchedTag) => {
    if (!state.moduleData) {
      state.moduleData = {};
    }
    state.moduleData.hasMismatchedTag = !!hasMismatchedTag;
  }),
  argsToParams(hasMismatchedTag) {
    return {
      hasMismatchedTag
    };
  },
  validateParams({
    hasMismatchedTag
  } = {}) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,lodash__WEBPACK_IMPORTED_MODULE_1__.isBoolean)(hasMismatchedTag), 'hasMismatchedTag must be boolean.');
  }
});
const fetchSetIsWebDataStreamUnavailable = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_11__.createFetchStore)({
  baseName: 'setIsWebDataStreamUnavailable',
  controlCallback({
    isWebDataStreamUnavailable
  }) {
    return (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__.set)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_9__.MODULE_SLUG_ANALYTICS_4, 'set-is-web-data-stream-unavailable', {
      isWebDataStreamUnavailable
    });
  },
  reducerCallback: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, isWebDataStreamUnavailable) => {
    state.moduleData.isWebDataStreamUnavailable = !!isWebDataStreamUnavailable;
  }),
  argsToParams(isWebDataStreamUnavailable) {
    return {
      isWebDataStreamUnavailable
    };
  },
  validateParams({
    isWebDataStreamUnavailable
  } = {}) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,lodash__WEBPACK_IMPORTED_MODULE_1__.isBoolean)(isWebDataStreamUnavailable), 'isWebDataStreamUnavailable must be boolean.');
  }
});

// Actions
const MATCHING_ACCOUNT_PROPERTY = 'MATCHING_ACCOUNT_PROPERTY';
const SET_HAS_MISMATCHED_TAG = 'SET_HAS_MISMATCHED_GOOGLE_TAG_ID';
const baseInitialState = {
  properties: {},
  propertiesByID: {},
  isMatchingAccountProperty: false
};
const baseActions = {
  /**
   * Creates a new GA4 property.
   *
   * @since 1.31.0
   *
   * @param {string} accountID Analytics account ID.
   * @return {Object} Object with `response` and `error`.
   */
  createProperty(accountID) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(accountID, 'accountID is required.');
    return function* () {
      const {
        dispatch
      } = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
      const {
        response,
        error
      } = yield fetchCreatePropertyStore.actions.fetchCreateProperty(accountID);
      if (response) {
        // Refresh account summaries to load the new property.
        yield dispatch(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).resetAccountSummaries();
      }
      return {
        response,
        error
      };
    }();
  },
  /**
   * Sets the given property and related fields in the store.
   *
   * @since 1.31.0
   *
   * @param {string} propertyID GA4 property ID.
   * @return {Object} A Generator function.
   */
  selectProperty: (0,_js_googlesitekit_data_utils__WEBPACK_IMPORTED_MODULE_13__.createValidatedAction)(propertyID => {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_12__.isValidPropertySelection)(propertyID), 'A valid propertyID selection is required.');
  }, function* (propertyID) {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    const {
      setPropertyCreateTime,
      setSettings,
      setWebDataStreamID,
      updateSettingsForMeasurementID
    } = registry.dispatch(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4);
    setSettings({
      propertyID,
      propertyCreateTime: 0
    });
    updateSettingsForMeasurementID('');
    if (_constants__WEBPACK_IMPORTED_MODULE_8__.PROPERTY_CREATE === propertyID) {
      setWebDataStreamID(_constants__WEBPACK_IMPORTED_MODULE_8__.WEBDATASTREAM_CREATE);
      return;
    }
    setWebDataStreamID('');
    if (propertyID) {
      const property = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(registry.resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getProperty(propertyID));
      if (property?.createTime) {
        setPropertyCreateTime(property.createTime);
      }
    }
    let webdatastream = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(registry.resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getMatchingWebDataStreamByPropertyID(propertyID));
    if (!webdatastream) {
      const webdatastreams = registry.select(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getWebDataStreams(propertyID);
      if (webdatastreams?.length) {
        webdatastream = webdatastreams[0];
      }
    }
    if (webdatastream) {
      setWebDataStreamID(webdatastream._id);
      updateSettingsForMeasurementID(
      // eslint-disable-next-line sitekit/acronym-case
      webdatastream.webStreamData.measurementId);
      return;
    }
    // At this point there is no web data stream to set.
    setWebDataStreamID(_constants__WEBPACK_IMPORTED_MODULE_8__.WEBDATASTREAM_CREATE);
  }),
  /**
   * Finds a matching property and returns it.
   *
   * @since 1.36.0
   *
   * @return {Object|null} Matching property on success, otherwise NULL.
   */
  *findMatchedProperty() {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    const accounts = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(registry.resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getAccountSummaries());
    if (!Array.isArray(accounts) || accounts.length === 0) {
      return null;
    }
    const url = registry.select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_SITE).getReferenceSiteURL();
    const propertyIDs = accounts.reduce((acc, {
      propertySummaries: properties
    }) => [...acc, ...(properties || []).map(({
      _id
    }) => _id)], []);
    return yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(registry.dispatch(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).matchPropertyByURL(propertyIDs, url));
  },
  /**
   * Matches a property for provided accountID.
   *
   * @since 1.38.0
   *
   * @param {string} accountID GA4 account ID.
   * @return {Object|null} Matched property object on success, otherwise NULL.
   */
  *matchAccountProperty(accountID) {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    const referenceURL = registry.select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_SITE).getReferenceSiteURL();
    const propertySummaries = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(registry.resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getPropertySummaries(accountID));
    const property = yield baseActions.matchPropertyByURL((propertySummaries || []).map(({
      _id
    }) => _id), referenceURL);
    return property;
  },
  /**
   * Matches and selects a property for provided accountID.
   *
   * @since 1.34.0
   *
   * @param {string} accountID          GA4 account ID.
   * @param {string} fallbackPropertyID A fallback propertyID to use if a matched property is not found.
   * @return {Object|null} Matched property object on success, otherwise NULL.
   */
  *matchAndSelectProperty(accountID, fallbackPropertyID = '') {
    yield {
      payload: {
        isMatchingAccountProperty: true
      },
      type: MATCHING_ACCOUNT_PROPERTY
    };
    const property = yield baseActions.matchAccountProperty(accountID);
    const propertyID = property?._id || fallbackPropertyID;
    if (propertyID) {
      yield baseActions.selectProperty(propertyID);
    }
    yield {
      payload: {
        isMatchingAccountProperty: false
      },
      type: MATCHING_ACCOUNT_PROPERTY
    };
    return property;
  },
  /**
   * Matches a property by URL.
   *
   * @since 1.33.0
   *
   * @param {Array.<number>}        properties Array of property IDs.
   * @param {Array.<string>|string} url        A list of URLs or a signle URL to match properties.
   * @return {Object} A property object if found.
   */
  *matchPropertyByURL(properties, url) {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    const urls = (Array.isArray(url) ? url : [url]).filter(item => typeof item === 'string').map(_js_util__WEBPACK_IMPORTED_MODULE_10__.normalizeURL);
    for (let i = 0; i < properties.length; i += _constants__WEBPACK_IMPORTED_MODULE_8__.MAX_WEBDATASTREAMS_PER_BATCH) {
      const chunk = properties.slice(i, i + _constants__WEBPACK_IMPORTED_MODULE_8__.MAX_WEBDATASTREAMS_PER_BATCH);
      const webdatastreams = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(registry.resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getWebDataStreamsBatch(chunk));
      for (const propertyID in webdatastreams) {
        for (const webdatastream of webdatastreams[propertyID]) {
          for (const singleURL of urls) {
            if (singleURL === (0,_js_util__WEBPACK_IMPORTED_MODULE_10__.normalizeURL)(
            // eslint-disable-next-line sitekit/acronym-case
            webdatastream.webStreamData?.defaultUri)) {
              return yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(registry.resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getProperty(propertyID));
            }
          }
        }
      }
    }
    return null;
  },
  /**
   * Matches a property by measurement ID.
   *
   * @since 1.33.0
   *
   * @param {Array.<number>}        properties    Array of property IDs.
   * @param {Array.<string>|string} measurementID A list of measurement IDs or a signle measurement ID to match properties.
   * @return {Object} A property object if found.
   */
  *matchPropertyByMeasurementID(properties, measurementID) {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    const measurementIDs = Array.isArray(measurementID) ? measurementID : [measurementID];
    for (let i = 0; i < properties.length; i += _constants__WEBPACK_IMPORTED_MODULE_8__.MAX_WEBDATASTREAMS_PER_BATCH) {
      const chunk = properties.slice(i, i + _constants__WEBPACK_IMPORTED_MODULE_8__.MAX_WEBDATASTREAMS_PER_BATCH);
      const webdatastreams = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(registry.resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getWebDataStreamsBatch(chunk));
      for (const propertyID in webdatastreams) {
        for (const webdatastream of webdatastreams[propertyID]) {
          for (const singleMeasurementID of measurementIDs) {
            if (singleMeasurementID === webdatastream.webStreamData?.measurementId // eslint-disable-line sitekit/acronym-case
            ) {
              return yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(registry.resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getProperty(propertyID));
            }
          }
        }
      }
    }
    return null;
  },
  /**
   * Updates settings for a given measurement ID.
   *
   * @since 1.94.0
   *
   * @param {string} measurementID Measurement ID.
   */
  *updateSettingsForMeasurementID(measurementID) {
    const {
      select,
      dispatch,
      resolveSelect
    } = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    if (!measurementID) {
      dispatch(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).setSettings({
        measurementID,
        googleTagAccountID: '',
        googleTagContainerID: '',
        googleTagID: ''
      });
      return;
    }
    dispatch(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).setMeasurementID(measurementID);

    // Wait for authentication to be resolved to check scopes.
    yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(resolveSelect(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER).getAuthentication());
    if (!select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER).hasScope(_js_modules_tagmanager_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.READ_SCOPE)) {
      return;
    }
    const googleTagSettings = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getGoogleTagSettings(measurementID));
    if (!googleTagSettings) {
      return;
    }
    const {
      googleTagAccountID,
      googleTagContainerID,
      googleTagID
    } = googleTagSettings;

    // Note that when plain actions are dispatched in a function where an await has occurred (this can be a regular async function that has awaited, or a generator function
    // action that yields to an async action), they are handled asynchronously when they would normally be synchronous. This means that following the usual pattern of dispatching
    // individual setter actions for the `googleTagAccountID`, `googleTagContainerID` and `googleTagID` settings each resulted in a rerender of the
    // GoogleTagIDMismatchNotification component, thus resulting in an erroneous call to the GET:container-destinations endpoint with mismatched settings. To mitigate this, we
    // dispatch a single action here to set all these settings at once. The same applies to the `setSettings()` call above.
    // See issue https://github.com/google/site-kit-wp/issues/6784 and the PR https://github.com/google/site-kit-wp/pull/6814.
    dispatch(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).setSettings({
      googleTagAccountID,
      googleTagContainerID,
      googleTagID
    });
  },
  /**
   * Sets if GA4 has mismatched Google Tag ID.
   *
   * @since 1.96.0
   * @since 1.130.0 Updated to send value to the endpoint.
   *
   * @param {boolean} hasMismatchedTag If GA4 has mismatched Google Tag.
   */
  *setHasMismatchedGoogleTagID(hasMismatchedTag) {
    yield fetchSetGoogleTagIDMismatch.actions.fetchSetGoogleTagIDMismatch(hasMismatchedTag);
  },
  /**
   * Sets if GA4 has mismatched Google Tag ID.
   *
   * @since 1.130.0
   *
   * @param {boolean} hasMismatchedTag If GA4 has mismatched Google Tag.
   * @return {Object} Redux-style action.
   */
  *receiveHasMismatchGoogleTagID(hasMismatchedTag) {
    return {
      type: SET_HAS_MISMATCHED_TAG,
      payload: {
        hasMismatchedTag: !!hasMismatchedTag
      }
    };
  },
  /**
   * Sets whether the Web Data Stream is unavailable.
   *
   * @since 1.99.0
   * @since 1.159.0 Updated to use the fetch store.
   *
   * @param {boolean} isWebDataStreamUnavailable Whether the Web Data Stream is unavailable.
   * @return {Object} Generator function.
   */
  *setIsWebDataStreamUnavailable(isWebDataStreamUnavailable) {
    return yield fetchSetIsWebDataStreamUnavailable.actions.fetchSetIsWebDataStreamUnavailable(isWebDataStreamUnavailable);
  },
  /**
   * Syncs Google Tag settings.
   *
   * @since 1.95.0
   */
  *syncGoogleTagSettings() {
    const {
      select,
      dispatch,
      resolveSelect
    } = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    const hasTagManagerReadScope = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_USER).hasScope(_js_modules_tagmanager_datastore_constants__WEBPACK_IMPORTED_MODULE_7__.READ_SCOPE);
    if (!hasTagManagerReadScope) {
      return;
    }

    // Wait for modules to be available before selecting.
    yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(resolveSelect(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_MODULES).getModules());
    const {
      isModuleConnected
    } = select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_MODULES);
    if (!isModuleConnected(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_9__.MODULE_SLUG_ANALYTICS_4)) {
      return;
    }

    // Wait for module settings to be available before selecting.
    yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getSettings());
    const {
      getGoogleTagID,
      getMeasurementID,
      getGoogleTagLastSyncedAtMs,
      getGoogleTagAccountID,
      getGoogleTagContainerID
    } = select(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4);
    const measurementID = getMeasurementID();
    if (!measurementID) {
      return;
    }
    const googleTagLastSyncedAtMs = getGoogleTagLastSyncedAtMs();

    // The "last synced" value should reflect the real time this action
    // was performed, so we don't use the reference date here.
    const timestamp = Date.now(); // eslint-disable-line sitekit/no-direct-date

    if (!!googleTagLastSyncedAtMs && timestamp - googleTagLastSyncedAtMs < _js_util__WEBPACK_IMPORTED_MODULE_10__.HOUR_IN_SECONDS * 1000) {
      return;
    }
    dispatch(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).setGoogleTagLastSyncedAtMs(timestamp);
    const googleTagID = getGoogleTagID();
    if (!!googleTagID) {
      const googleTagContainer = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getGoogleTagContainer(measurementID));
      yield baseActions.setIsWebDataStreamUnavailable(!googleTagContainer);
      if (googleTagContainer && !googleTagContainer.tagIds.includes(googleTagID)) {
        yield baseActions.setHasMismatchedGoogleTagID(true);
      }
    } else {
      yield baseActions.updateSettingsForMeasurementID(measurementID);
    }
    const googleTagAccountID = getGoogleTagAccountID();
    const googleTagContainerID = getGoogleTagContainerID();
    const googleTagContainerDestinations = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getGoogleTagContainerDestinations(googleTagAccountID, googleTagContainerID)) || []; // Fallback used in the event of an error.

    const googleTagContainerDestinationIDs = googleTagContainerDestinations?.map(
    // eslint-disable-next-line sitekit/acronym-case
    ({
      destinationId
    }) => destinationId);
    dispatch(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).setGoogleTagContainerDestinationIDs(googleTagContainerDestinationIDs);
    dispatch(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).saveSettings();
  }
};
const baseControls = {};
const baseReducer = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, {
  type,
  payload
}) => {
  switch (type) {
    case MATCHING_ACCOUNT_PROPERTY:
      {
        state.isMatchingAccountProperty = payload.isMatchingAccountProperty;
        break;
      }
    case SET_HAS_MISMATCHED_TAG:
      {
        state.moduleData = state.moduleData || {};
        state.moduleData.hasMismatchedTag = payload.hasMismatchedTag;
        break;
      }
    default:
      break;
  }
});
const baseResolvers = {
  *getProperties(accountID) {
    if (!(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_12__.isValidAccountID)(accountID)) {
      return;
    }
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    // Only fetch properties if there are none in the store for the given account.
    const properties = registry.select(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getProperties(accountID);
    if (properties === undefined) {
      yield fetchGetPropertiesStore.actions.fetchGetProperties(accountID);
    }
  },
  *getProperty(propertyID) {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    const property = registry.select(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getProperty(propertyID);
    if (property === undefined) {
      yield fetchGetPropertyStore.actions.fetchGetProperty(propertyID);
    }
  },
  *getPropertySummaries(accountID) {
    const {
      resolveSelect
    } = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getAccountSummaries(accountID));
  },
  *getPropertyCreateTime() {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    // Ensure settings are available to select.
    yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(registry.resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getSettings());
    const propertyID = registry.select(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getPropertyID();
    const propertyCreateTime = registry.select(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getPropertyCreateTime();
    if (propertyCreateTime || !(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_12__.isValidPropertyID)(propertyID)) {
      return;
    }
    const cachedPropertyCreateTime = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await((0,_js_googlesitekit_api_cache__WEBPACK_IMPORTED_MODULE_14__.getItem)(`analytics4-properties-getPropertyCreateTime-${propertyID}`));
    if (cachedPropertyCreateTime.cacheHit) {
      registry.dispatch(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).setPropertyCreateTime(cachedPropertyCreateTime.value);
      return;
    }
    const property = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(registry.resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getProperty(propertyID));
    if (!property?.createTime) {
      return;
    }

    // Cache this value for 1 hour (the default cache time).
    yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await((0,_js_googlesitekit_api_cache__WEBPACK_IMPORTED_MODULE_14__.setItem)(`analytics4-properties-getPropertyCreateTime-${propertyID}`, property.createTime));
    registry.dispatch(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).setPropertyCreateTime(property.createTime);
  },
  *getGoogleTagSettings(measurementID) {
    if (!measurementID) {
      return null;
    }
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    const googleTagSettings = registry.select(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getGoogleTagSettings(measurementID);
    if (googleTagSettings !== undefined) {
      return googleTagSettings;
    }
    return yield fetchGetGoogleTagSettingsStore.actions.fetchGetGoogleTagSettings(measurementID);
  }
};
const baseSelectors = {
  /**
   * Gets all GA4 properties this account can access.
   *
   * @since 1.31.0
   *
   * @param {Object} state     Data store's state.
   * @param {string} accountID The GA4 Account ID to fetch properties for.
   * @return {(Array.<Object>|undefined)} An array of GA4 properties; `undefined` if not loaded.
   */
  getProperties(state, accountID) {
    return state.properties[accountID];
  },
  /**
   * Gets a property with specific ID.
   *
   * @since 1.31.0
   *
   * @param {Object} state      Data store's state.
   * @param {string} propertyID The GA4 property ID to fetch property object for.
   * @return {(Object|undefined)} A property object; `undefined` if not loaded.
   */
  getProperty(state, propertyID) {
    return state.propertiesByID[propertyID];
  },
  /**
   * Gets all GA4 properties from the account summaries this account can access.
   *
   * @since 1.118.0
   *
   * @param {Object} state     Data store's state.
   * @param {string} accountID The GA4 Account ID to fetch properties for.
   * @return {(Array.<Object>|undefined)} An array of GA4 properties; `undefined` if not loaded.
   */
  getPropertySummaries: (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_15__.createRegistrySelector)(select => (state, accountID) => {
    const accountSummaries = select(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getAccountSummaries();
    if (accountSummaries === undefined) {
      return undefined;
    }
    const account = accountSummaries.find(summary => summary._id === accountID);
    return account ? account.propertySummaries : [];
  }),
  /**
   * Gets Google tag settings.
   *
   * @since 1.150.0
   *
   * @param {Object} state         Data store's state.
   * @param {string} measurementID Measurement ID.
   * @return {(Object|undefined)} A Google tag settings object; `undefined` if not loaded.
   */
  getGoogleTagSettings(state, measurementID) {
    return state.googleTagSettings?.[measurementID];
  },
  /**
   * Determines whether we are matching account property or not.
   *
   * @since 1.98.0
   *
   * @param {Object} state Data store's state.
   * @return {boolean} TRUE if we matching account property right now, otherwise FALSE.
   */
  isMatchingAccountProperty(state) {
    return state.isMatchingAccountProperty;
  },
  /**
   * Checks if properties summaries are currently being loaded.
   *
   * This selector was introduced as a convenience for reusing the same loading logic across multiple
   * components, initially the `PropertySelect` and `SettingsEnhancedMeasurementSwitch` components.
   *
   * @since 1.118.0
   *
   * @return {boolean} TRUE if the properties summaries are currently being loaded, otherwise FALSE.
   */
  isLoadingPropertySummaries: (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_15__.createRegistrySelector)(select => () => {
    return !select(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).hasFinishedResolution('getAccountSummaries') || select(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).isMatchingAccountProperty() || select(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).hasFinishedSelectingAccount() === false;
  })
};
const store = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.combineStores)(fetchCreatePropertyStore, fetchGetPropertiesStore, fetchGetPropertyStore, fetchGetGoogleTagSettingsStore, fetchSetGoogleTagIDMismatch, fetchSetIsWebDataStreamUnavailable, {
  initialState: baseInitialState,
  actions: baseActions,
  controls: baseControls,
  reducer: baseReducer,
  resolvers: baseResolvers,
  selectors: baseSelectors
});
const initialState = store.initialState;
const actions = store.actions;
const controls = store.controls;
const reducer = store.reducer;
const resolvers = store.resolvers;
const selectors = store.selectors;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (store);

/***/ }),

/***/ "./js/modules/analytics-4/datastore/report.js":
/*!****************************************************!*\
  !*** ./js/modules/analytics-4/datastore/report.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   actions: () => (/* binding */ actions),
/* harmony export */   controls: () => (/* binding */ controls),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */   initialState: () => (/* binding */ initialState),
/* harmony export */   reducer: () => (/* binding */ reducer),
/* harmony export */   resolvers: () => (/* binding */ resolvers),
/* harmony export */   selectors: () => (/* binding */ selectors)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-api */ "googlesitekit-api");
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/data/create-fetch-store */ "./js/googlesitekit/data/create-fetch-store.js");
/* harmony import */ var _js_googlesitekit_modules_create_gathering_data_store__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/modules/create-gathering-data-store */ "./js/googlesitekit/modules/create-gathering-data-store.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_modules_analytics_4_utils__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/modules/analytics-4/utils */ "./js/modules/analytics-4/utils/index.js");
/* harmony import */ var _js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/validation */ "./js/modules/analytics-4/utils/validation.js");
/**
 * `modules/analytics-4` data store: report.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * External dependencies
 */


/**
 * Internal dependencies
 */











const fetchGetReportStore = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_4__.createFetchStore)({
  baseName: 'getReport',
  controlCallback: ({
    options
  }) => {
    return (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__.get)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_9__.MODULE_SLUG_ANALYTICS_4, 'report', (0,_js_modules_analytics_4_utils__WEBPACK_IMPORTED_MODULE_11__.normalizeReportOptions)(options));
  },
  reducerCallback: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, report, {
    options
  }) => {
    state.reports[(0,_js_util__WEBPACK_IMPORTED_MODULE_10__.stringifyObject)(options)] = report;
  }),
  argsToParams: options => {
    return {
      options
    };
  },
  validateParams: ({
    options
  } = {}) => (0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_12__.validateReport)(options)
});
const gatheringDataStore = (0,_js_googlesitekit_modules_create_gathering_data_store__WEBPACK_IMPORTED_MODULE_5__.createGatheringDataStore)(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_9__.MODULE_SLUG_ANALYTICS_4, {
  storeName: _constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4,
  dataAvailable: __webpack_require__.g._googlesitekitModulesData?.['data_available_analytics-4'],
  selectDataAvailability: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => () => {
    // Disable reason: This needs to be run here in order for the report to be resolved.
    // eslint-disable-next-line @wordpress/no-unused-vars-before-return
    const hasZeroData = select(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).hasZeroData();
    const args = select(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getSampleReportArgs();
    const hasResolvedReport = select(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [args]);
    if (!hasResolvedReport || hasZeroData === undefined) {
      return undefined;
    }
    const hasReportError = select(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [args]);

    // If there is an error, return `null` since we don't know if there is data or not.
    if (hasReportError) {
      return null;
    }
    if (hasZeroData === false) {
      return true;
    }
    const isAuthenticated = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).isAuthenticated();
    if (isAuthenticated === undefined) {
      return undefined;
    }
    if (!isAuthenticated) {
      return false;
    }
    const propertyCreateTime = select(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getPropertyCreateTime();
    if (undefined === propertyCreateTime) {
      return undefined;
    }

    // If the property is new and has no data, assume it's still gathering data.
    if (propertyCreateTime === 0) {
      return false;
    }

    // If the property was created within the last three days and has no data, assume it's still gathering data.
    const now = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).getReferenceDate();
    const threeDaysAgo = (0,_js_util__WEBPACK_IMPORTED_MODULE_10__.dateSub)(now, 3 * _js_util__WEBPACK_IMPORTED_MODULE_10__.DAY_IN_SECONDS);
    if (propertyCreateTime > threeDaysAgo.getTime()) {
      return false;
    }
    return true;
  })
});
const baseInitialState = {
  reports: {}
};
const baseResolvers = {
  *getReport(options = {}) {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    const existingReport = registry.select(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getReport(options);

    // If there is already a report loaded in state, consider it fulfilled
    // and don't make an API request.
    if (existingReport) {
      return;
    }
    yield fetchGetReportStore.actions.fetchGetReport(options);
  }
};
const baseSelectors = {
  /**
   * Gets an Analytics report for the given options.
   *
   * @since 1.94.0
   * @since 1.111.0 Add metricFilters to the options list, to reflect added support for the metric filters.
   *
   * @param {Object}         state                      Data store's state.
   * @param {Object}         options                    Options for generating the report.
   * @param {string}         options.startDate          Required. Start date to query report data for as YYYY-mm-dd.
   * @param {string}         options.endDate            Required. End date to query report data for as YYYY-mm-dd.
   * @param {Array.<string>} options.metrics            Required. List of metrics to query.
   * @param {string}         [options.compareStartDate] Optional. Start date to compare report data for as YYYY-mm-dd.
   * @param {string}         [options.compareEndDate]   Optional. End date to compare report data for as YYYY-mm-dd.
   * @param {Array.<string>} [options.dimensions]       Optional. List of dimensions to group results by. Default an empty array.
   * @param {Object}         [options.dimensionFilters] Optional. Map of dimension filters for filtering options on a dimension. Default an empty object.
   * @param {Object}         [options.metricFilters]    Optional. Map of metric filters for filtering options on a metric. Default an empty object.
   * @param {Array.<Object>} [options.orderby]          Optional. An order definition object, or a list of order definition objects, each one containing 'fieldName' and 'sortOrder'. 'sortOrder' must be either 'ASCENDING' or 'DESCENDING'. Default empty array.
   * @param {string}         [options.url]              Optional. URL to get a report for only this URL. Default an empty string.
   * @param {number}         [options.limit]            Optional. Maximum number of entries to return. Default 1000.
   * @return {(Array.<Object>|undefined)} An Analytics report; `undefined` if not loaded.
   */
  getReport(state, options) {
    const {
      reports
    } = state;
    return reports[(0,_js_util__WEBPACK_IMPORTED_MODULE_10__.stringifyObject)(options)];
  },
  /**
   * Gets a Page title to URL map for the given options.
   *
   * @since 1.96.0
   *
   * @param {Object} state             Data store's state.
   * @param {Object} report            A report from the getReport selector containing pagePaths.
   * @param {Object} options           Options for generating the report.
   * @param {string} options.startDate Required, start date to query report data for as YYYY-mm-dd.
   * @param {string} options.endDate   Required, end date to query report data for as YYYY-mm-dd.
   * @return {(Object|undefined)} A map with url as the key and page title as the value. `undefined` if not loaded.
   */
  getPageTitles: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => (state, report, {
    startDate,
    endDate
  } = {}) => {
    if (!(0,lodash__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(report)) {
      return undefined;
    }
    const pagePaths = [];
    const REQUEST_MULTIPLIER = 5;

    /*
     * Iterate over the report rows, finding the dimension containing the
     * pagePath value which we add to the array of pagePaths.
     */
    const {
      dimensionHeaders,
      rows
    } = report;
    if (Array.isArray(dimensionHeaders) && Array.isArray(rows)) {
      const pagePathIndex = dimensionHeaders.findIndex(({
        name
      }) => name === 'pagePath');
      rows.forEach(({
        dimensionValues
      }) => {
        if (!pagePaths.includes(dimensionValues[pagePathIndex].value)) {
          pagePaths.push(dimensionValues[pagePathIndex].value);
        }
      });
    }
    const urlTitleMap = {};
    if (!pagePaths.length) {
      return urlTitleMap;
    }
    const options = {
      startDate,
      endDate,
      dimensions: ['pagePath', 'pageTitle'],
      dimensionFilters: {
        pagePath: pagePaths.sort()
      },
      metrics: [{
        name: 'screenPageViews'
      }],
      orderby: [{
        metric: {
          metricName: 'screenPageViews'
        },
        desc: true
      }],
      limit: REQUEST_MULTIPLIER * pagePaths.length,
      reportID: 'analytics-4_get-page-titles_store:selector_options'
    };
    const pageTitlesReport = select(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getReport(options);
    if (undefined === pageTitlesReport) {
      return undefined;
    }
    (pageTitlesReport?.rows || []).forEach(({
      dimensionValues
    }) => {
      if (!urlTitleMap[dimensionValues[0].value]) {
        // key is the url, value is the page title.
        urlTitleMap[dimensionValues[0].value] = dimensionValues[1].value;
      }
    });
    pagePaths.forEach(pagePath => {
      if (!urlTitleMap[pagePath]) {
        // If we don't have a title for the pagePath, we use '(unknown)'.
        urlTitleMap[pagePath] = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('(unknown)', 'google-site-kit');
      }
    });
    return urlTitleMap;
  }),
  /**
   * Determines whether Analytics 4 has zero data or not.
   *
   * @since 1.95.0
   * @since 1.107.0 Returns `true` if the report request has an error to be consistent with `hasZeroData` selectors of other modules.
   * @since 1.128.0 Add optional `reportArgs` parameter to allow checking zero data for a specific report.
   *
   * @param {Object}           state      Data store's state.
   * @param {Object|undefined} reportArgs Optional. Options for generating the report.
   * @return {boolean|undefined} Returns `true` if the report is zero, otherwise `false`. Returns `undefined` while resolving.
   */
  hasZeroData: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => (state, reportArgs) => {
    const args = reportArgs || select(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getSampleReportArgs();

    // Disable reason: select needs to be called here or it will never run.
    // eslint-disable-next-line @wordpress/no-unused-vars-before-return
    const report = select(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getReport(args);
    const hasResolvedReport = select(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [args]);
    if (!hasResolvedReport) {
      return undefined;
    }
    const hasReportError = select(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [args]);

    // If there is an error, we assume it's a zero report.
    if (hasReportError) {
      return true;
    }
    return (0,_js_modules_analytics_4_utils__WEBPACK_IMPORTED_MODULE_11__.isZeroReport)(report);
  }),
  /**
   * Returns report args for a sample report.
   *
   * @since 1.107.0
   * @since 1.124.0 Moved from the main analytics-4 datastore file to utils.
   * @since 1.136.0 Moved back to the main analytics-4 datastore file and updated to be a selector.
   *
   * @param {Function} select The select function of the registry.
   * @return {Object} Report args.
   */
  getSampleReportArgs: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => () => {
    const {
      compareStartDate: startDate,
      endDate
    } = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_6__.CORE_USER).getDateRangeDates({
      compare: true,
      offsetDays: _constants__WEBPACK_IMPORTED_MODULE_8__.DATE_RANGE_OFFSET
    });
    const args = {
      dimensions: ['date'],
      metrics: [{
        name: 'totalUsers'
      }],
      startDate,
      endDate
    };
    const url = select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_7__.CORE_SITE).getCurrentEntityURL();
    if (url) {
      args.url = url;
    }
    return args;
  }),
  /**
   * Gets a given report for each of the provided audiences.
   *
   * @since 1.126.0
   *
   * @param {Object}   state                 Data store's state.
   * @param {Object}   options               Options for generating the report.
   * @param {string[]} audienceResourceNames Audience resource names to get the report for.
   * @return {Array.<Object>} An array of report response objects for each provided audience resource name.
   */
  getReportForAllAudiences: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => (state, options, audienceResourceNames) => {
    return audienceResourceNames?.map(audienceResourceName => {
      const partialDataSiteKitAudience = select(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getPartialDataSiteKitAudience(audienceResourceName);
      if (partialDataSiteKitAudience === undefined) {
        return undefined;
      }
      const dimensionFilters = {};
      if (partialDataSiteKitAudience) {
        dimensionFilters.newVsReturning = partialDataSiteKitAudience.audienceSlug === 'new-visitors' ? 'new' : 'returning';
      } else {
        dimensionFilters.audienceResourceName = audienceResourceName;
      }
      return select(_constants__WEBPACK_IMPORTED_MODULE_8__.MODULES_ANALYTICS_4).getReport({
        ...options,
        dimensionFilters: {
          ...options.dimensionFilters,
          ...dimensionFilters
        }
      });
    });
  })
};
const store = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.combineStores)(fetchGetReportStore, gatheringDataStore, {
  initialState: baseInitialState,
  resolvers: baseResolvers,
  selectors: baseSelectors
});
const initialState = store.initialState;
const actions = store.actions;
const controls = store.controls;
const reducer = store.reducer;
const resolvers = store.resolvers;
const selectors = store.selectors;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (store);

/***/ }),

/***/ "./js/modules/analytics-4/datastore/service.js":
/*!*****************************************************!*\
  !*** ./js/modules/analytics-4/datastore/service.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */   selectors: () => (/* binding */ selectors)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/url */ "../node_modules/@wordpress/url/build-module/add-query-args.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_util_escape_uri__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/util/escape-uri */ "./js/util/escape-uri.ts");
/* harmony import */ var _js_modules_analytics_4_utils_report_date_range_args__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/report-date-range-args */ "./js/modules/analytics-4/utils/report-date-range-args.js");
/* harmony import */ var _js_modules_analytics_4_utils_report_args__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/report-args */ "./js/modules/analytics-4/utils/report-args.js");
/**
 * `modules/analytics-4` data store: service.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */







const selectors = {
  /**
   * Gets a URL to the service.
   *
   * @since 1.119.0
   *
   * @param {Object} state        Data store's state.
   * @param {Object} [args]       Object containing optional path and query args.
   * @param {string} [args.path]  A path to append to the base url.
   * @param {Object} [args.query] Object of query params to be added to the URL.
   * @return {(string|undefined)} The URL to the service, or `undefined` if not loaded.
   */
  getServiceURL: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.createRegistrySelector)(select => (state, {
    path,
    query
  } = {}) => {
    let serviceURL = 'https://analytics.google.com/analytics/web/';
    if (query) {
      serviceURL = (0,_wordpress_url__WEBPACK_IMPORTED_MODULE_8__.addQueryArgs)(serviceURL, {
        ...query,
        utm_source: 'sitekit'
      });
    }
    if (path) {
      const sanitizedPath = `/${path.replace(/^\//, '')}`;
      serviceURL = `${serviceURL}#${sanitizedPath}`;
    }
    const accountChooserBaseURI = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).getAccountChooserURL(serviceURL);
    if (accountChooserBaseURI === undefined) {
      return undefined;
    }
    return accountChooserBaseURI;
  }),
  /**
   * Gets a URL for a specific Analytics 4 reporting view on the service.
   *
   * @since 1.98.0
   *
   * @param {Object} state        Data store's state.
   * @param {string} type         Report type.
   * @param {Object} [reportArgs] Report-specific arguments for targeting a specific sub-view.
   * @return {(string|undefined)} The service URL.
   */
  getServiceReportURL: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.createRegistrySelector)(select => (state, type, reportArgs = {}) => {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(type, 'type is required to get a service report URL.');
    const propertyID = select(_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getPropertyID();
    if (!propertyID) {
      return undefined;
    }
    const {
      dates,
      details = {},
      filters = {},
      otherArgs = {}
    } = reportArgs;
    const embeddedParams = {
      [_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_4__.REPORT_ARGS_NAV_KEY]: 'maui',
      ...(dates ? (0,_js_modules_analytics_4_utils_report_date_range_args__WEBPACK_IMPORTED_MODULE_6__.generateDateRangeArgs)(dates) : {}),
      ...(0,_js_modules_analytics_4_utils_report_args__WEBPACK_IMPORTED_MODULE_7__.generateReportDetailArgs)(details),
      ...(0,_js_modules_analytics_4_utils_report_args__WEBPACK_IMPORTED_MODULE_7__.generateReportFilterArgs)(filters)
    };

    // Here we turn embeddedParams into a query string without any URI encoding, as the
    // result will be encoded by addQueryArgs, and we don't want to double-encode it.
    const params = Object.entries(embeddedParams).map(([key, value]) => `${key}=${value}`).join('&');
    const path = (0,_wordpress_url__WEBPACK_IMPORTED_MODULE_8__.addQueryArgs)((0,_js_util_escape_uri__WEBPACK_IMPORTED_MODULE_5__.escapeURI)`/p${propertyID}/reports/explorer`, {
      params,
      r: type,
      ...otherArgs
    });
    return select(_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getServiceURL({
      query: {
        pli: 1
      },
      path
    });
  }),
  /**
   * Gets an entity access URL on the service.
   *
   * @since 1.109.0
   *
   * @param {Object} state Data store's state.
   * @return {string|undefined} The entity access URL to the service.
   */
  getServiceEntityAccessURL: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.createRegistrySelector)(select => () => {
    const accountID = select(_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getAccountID();
    const propertyID = select(_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getPropertyID();
    const webDataStreamID = select(_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getWebDataStreamID();
    if (!accountID || !propertyID || !webDataStreamID) {
      return undefined;
    }
    return select(_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getServiceURL({
      path: (0,_js_util_escape_uri__WEBPACK_IMPORTED_MODULE_5__.escapeURI)`/a${accountID}p${propertyID}/admin/streams/table/${webDataStreamID}`
    });
  })
};
const store = {
  selectors
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (store);

/***/ }),

/***/ "./js/modules/analytics-4/datastore/settings.js":
/*!******************************************************!*\
  !*** ./js/modules/analytics-4/datastore/settings.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   INVARIANT_INVALID_ADS_CONVERSION_ID: () => (/* binding */ INVARIANT_INVALID_ADS_CONVERSION_ID),
/* harmony export */   INVARIANT_INVALID_PROPERTY_SELECTION: () => (/* binding */ INVARIANT_INVALID_PROPERTY_SELECTION),
/* harmony export */   INVARIANT_INVALID_WEBDATASTREAM_ID: () => (/* binding */ INVARIANT_INVALID_WEBDATASTREAM_ID),
/* harmony export */   INVARIANT_INVALID_WEBDATASTREAM_NAME: () => (/* binding */ INVARIANT_INVALID_WEBDATASTREAM_NAME),
/* harmony export */   INVARIANT_WEBDATASTREAM_ALREADY_EXISTS: () => (/* binding */ INVARIANT_WEBDATASTREAM_ALREADY_EXISTS),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */   rollbackChanges: () => (/* binding */ rollbackChanges),
/* harmony export */   submitChanges: () => (/* binding */ submitChanges),
/* harmony export */   validateCanSubmitChanges: () => (/* binding */ validateCanSubmitChanges),
/* harmony export */   validateHaveSettingsChanged: () => (/* binding */ validateHaveSettingsChanged)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-api */ "googlesitekit-api");
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _js_googlesitekit_data_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/data/utils */ "./js/googlesitekit/data/utils.js");
/* harmony import */ var _js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/validation */ "./js/modules/analytics-4/utils/validation.js");
/* harmony import */ var _js_googlesitekit_data_create_settings_store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/googlesitekit/data/create-settings-store */ "./js/googlesitekit/data/create-settings-store.js");
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_modules_ads_utils_validation__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/js/modules/ads/utils/validation */ "./js/modules/ads/utils/validation.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_notifications_datastore_constants__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/js/googlesitekit/notifications/datastore/constants */ "./js/googlesitekit/notifications/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/js/googlesitekit/notifications/constants */ "./js/googlesitekit/notifications/constants.js");
/**
 * `modules/analytics-4` data store: settings.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Internal dependencies
 */














// Invariant error messages.
const INVARIANT_INVALID_PROPERTY_SELECTION = 'a valid propertyID is required to submit changes';
const INVARIANT_INVALID_WEBDATASTREAM_ID = 'a valid webDataStreamID is required to submit changes';
const INVARIANT_INVALID_WEBDATASTREAM_NAME = 'a valid web data stream name is required to submit changes';
const INVARIANT_WEBDATASTREAM_ALREADY_EXISTS = 'a web data stream with the same name already exists';
const INVARIANT_INVALID_ADS_CONVERSION_ID = 'a valid ads adsConversionID is required to submit changes';
const store = {
  selectors: {
    areSettingsEditDependenciesLoaded: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => () => select(_constants__WEBPACK_IMPORTED_MODULE_9__.MODULES_ANALYTICS_4).hasFinishedResolution('getAccountSummaries'))
  }
};
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (store);
async function submitChanges({
  dispatch,
  select,
  resolveSelect
}) {
  let propertyID = select(_constants__WEBPACK_IMPORTED_MODULE_9__.MODULES_ANALYTICS_4).getPropertyID();
  if (propertyID === _constants__WEBPACK_IMPORTED_MODULE_9__.PROPERTY_CREATE) {
    const accountID = select(_constants__WEBPACK_IMPORTED_MODULE_9__.MODULES_ANALYTICS_4).getAccountID();
    const {
      response: property,
      error
    } = await dispatch(_constants__WEBPACK_IMPORTED_MODULE_9__.MODULES_ANALYTICS_4).createProperty(accountID);
    if (error) {
      return {
        error
      };
    }
    propertyID = property._id;
    dispatch(_constants__WEBPACK_IMPORTED_MODULE_9__.MODULES_ANALYTICS_4).setPropertyID(propertyID);
    dispatch(_constants__WEBPACK_IMPORTED_MODULE_9__.MODULES_ANALYTICS_4).setWebDataStreamID(_constants__WEBPACK_IMPORTED_MODULE_9__.WEBDATASTREAM_CREATE);
    await dispatch(_constants__WEBPACK_IMPORTED_MODULE_9__.MODULES_ANALYTICS_4).updateSettingsForMeasurementID('');
  }
  let webDataStreamID = select(_constants__WEBPACK_IMPORTED_MODULE_9__.MODULES_ANALYTICS_4).getWebDataStreamID();
  if (propertyID && webDataStreamID === _constants__WEBPACK_IMPORTED_MODULE_9__.WEBDATASTREAM_CREATE) {
    const webDataStreamName = select(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_7__.CORE_FORMS).getValue(_constants__WEBPACK_IMPORTED_MODULE_9__.FORM_SETUP, 'webDataStreamName');
    let webDataStreamAlreadyExists = false;
    if ((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_5__.isValidPropertyID)(propertyID)) {
      webDataStreamAlreadyExists = await resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_9__.MODULES_ANALYTICS_4).doesWebDataStreamExist(propertyID, webDataStreamName);
    }
    if ((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_5__.isValidWebDataStreamName)(webDataStreamName) && false === webDataStreamAlreadyExists) {
      const {
        response: webdatastream,
        error
      } = await dispatch(_constants__WEBPACK_IMPORTED_MODULE_9__.MODULES_ANALYTICS_4).createWebDataStream(propertyID, webDataStreamName);
      if (error) {
        return {
          error
        };
      }
      webDataStreamID = webdatastream._id;
      dispatch(_constants__WEBPACK_IMPORTED_MODULE_9__.MODULES_ANALYTICS_4).setWebDataStreamID(webDataStreamID);
      await dispatch(_constants__WEBPACK_IMPORTED_MODULE_9__.MODULES_ANALYTICS_4).updateSettingsForMeasurementID(
      // eslint-disable-next-line sitekit/acronym-case
      webdatastream.webStreamData.measurementId);
    }
  }
  if ((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_5__.isValidPropertyID)(propertyID) && (0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_5__.isValidWebDataStreamID)(webDataStreamID)) {
    const isEnhancedMeasurementEnabled = select(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_7__.CORE_FORMS).getValue(_constants__WEBPACK_IMPORTED_MODULE_9__.ENHANCED_MEASUREMENT_FORM, _constants__WEBPACK_IMPORTED_MODULE_9__.ENHANCED_MEASUREMENT_ENABLED);

    // Only make the API request to enable the Enhanced Measurement setting, not to disable it.
    if (isEnhancedMeasurementEnabled) {
      const {
        error
      } = await updateEnhancedMeasurementSettings({
        select,
        dispatch,
        propertyID,
        webDataStreamID,
        isEnhancedMeasurementEnabled
      });
      if (error) {
        return {
          error
        };
      }
    }
  }
  const {
    error
  } = await saveSettings(select, dispatch);
  if (error) {
    return {
      error
    };
  }
  dispatch(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_8__.CORE_USER).resetUserAudienceSettings();
  await (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__.invalidateCache)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_10__.MODULE_SLUG_ANALYTICS_4);
  return {};
}
async function saveSettings(select, dispatch) {
  const haveSettingsChanged = select(_constants__WEBPACK_IMPORTED_MODULE_9__.MODULES_ANALYTICS_4).haveSettingsChanged();
  if (haveSettingsChanged) {
    const {
      error
    } = await dispatch(_constants__WEBPACK_IMPORTED_MODULE_9__.MODULES_ANALYTICS_4).saveSettings();
    if (error) {
      return {
        error
      };
    }
  }
  const haveConversionTrackingSettingsChanged = select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_12__.CORE_SITE).haveConversionTrackingSettingsChanged();
  if (haveConversionTrackingSettingsChanged) {
    const {
      error
    } = await dispatch(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_12__.CORE_SITE).saveConversionTrackingSettings();
    if (error) {
      return {
        error
      };
    }
  }
  const haveGoogleTagGatewaySettingsChanged = select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_12__.CORE_SITE).haveGoogleTagGatewaySettingsChanged();
  if (haveGoogleTagGatewaySettingsChanged) {
    const {
      error
    } = await dispatch(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_12__.CORE_SITE).saveGoogleTagGatewaySettings();
    if (error) {
      return {
        error
      };
    }
    if (select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_12__.CORE_SITE).isGoogleTagGatewayEnabled() && !select(_js_googlesitekit_notifications_datastore_constants__WEBPACK_IMPORTED_MODULE_13__.CORE_NOTIFICATIONS).isNotificationDismissed(_js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_14__.GTG_SETUP_CTA_BANNER_NOTIFICATION)) {
      const {
        error: dismissError
      } = (await dispatch(_js_googlesitekit_notifications_datastore_constants__WEBPACK_IMPORTED_MODULE_13__.CORE_NOTIFICATIONS).dismissNotification(_js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_14__.GTG_SETUP_CTA_BANNER_NOTIFICATION)) || {};
      if (dismissError) {
        return {
          error: dismissError
        };
      }
    }
  }
  return {};
}
async function updateEnhancedMeasurementSettings({
  select,
  dispatch,
  propertyID,
  webDataStreamID,
  isEnhancedMeasurementEnabled
}) {
  await dispatch(_constants__WEBPACK_IMPORTED_MODULE_9__.MODULES_ANALYTICS_4).setEnhancedMeasurementStreamEnabled({
    propertyID,
    webDataStreamID,
    enabled: isEnhancedMeasurementEnabled
  });
  if (select(_constants__WEBPACK_IMPORTED_MODULE_9__.MODULES_ANALYTICS_4).haveEnhancedMeasurementSettingsChanged(propertyID, webDataStreamID)) {
    const {
      error
    } = await dispatch(_constants__WEBPACK_IMPORTED_MODULE_9__.MODULES_ANALYTICS_4).updateEnhancedMeasurementSettings(propertyID, webDataStreamID);
    if (error) {
      return {
        error
      };
    }
    const shouldDismissActivationBanner = select(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_7__.CORE_FORMS).getValue(_constants__WEBPACK_IMPORTED_MODULE_9__.ENHANCED_MEASUREMENT_FORM, _constants__WEBPACK_IMPORTED_MODULE_9__.ENHANCED_MEASUREMENT_SHOULD_DISMISS_ACTIVATION_BANNER);
    if (shouldDismissActivationBanner) {
      await dispatch(_js_googlesitekit_notifications_datastore_constants__WEBPACK_IMPORTED_MODULE_13__.CORE_NOTIFICATIONS).dismissNotification('enhanced-measurement-notification');
    }
  }
  return {};
}
function rollbackChanges({
  select,
  dispatch
}) {
  if (select(_constants__WEBPACK_IMPORTED_MODULE_9__.MODULES_ANALYTICS_4).haveSettingsChanged()) {
    dispatch(_constants__WEBPACK_IMPORTED_MODULE_9__.MODULES_ANALYTICS_4).rollbackSettings();
    dispatch(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_12__.CORE_SITE).resetConversionTrackingSettings();
    dispatch(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_12__.CORE_SITE).resetGoogleTagGatewaySettings();
  }
  dispatch(_constants__WEBPACK_IMPORTED_MODULE_9__.MODULES_ANALYTICS_4).resetEnhancedMeasurementSettings();
}
function validateCanSubmitChanges(select) {
  const {
    haveAnyGA4SettingsChanged,
    isDoingSubmitChanges,
    getPropertyID,
    getWebDataStreamID,
    doesWebDataStreamExist,
    getAdsConversionID
  } = (0,_js_googlesitekit_data_utils__WEBPACK_IMPORTED_MODULE_4__.createStrictSelect)(select)(_constants__WEBPACK_IMPORTED_MODULE_9__.MODULES_ANALYTICS_4);
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(haveAnyGA4SettingsChanged(), _js_googlesitekit_data_create_settings_store__WEBPACK_IMPORTED_MODULE_6__.INVARIANT_SETTINGS_NOT_CHANGED);
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(!isDoingSubmitChanges(), _js_googlesitekit_data_create_settings_store__WEBPACK_IMPORTED_MODULE_6__.INVARIANT_DOING_SUBMIT_CHANGES);
  const propertyID = getPropertyID();
  invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_5__.isValidPropertySelection)(propertyID), INVARIANT_INVALID_PROPERTY_SELECTION);
  const webDataStreamID = getWebDataStreamID();
  invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_5__.isValidWebDataStreamSelection)(webDataStreamID), INVARIANT_INVALID_WEBDATASTREAM_ID);
  if (webDataStreamID === _constants__WEBPACK_IMPORTED_MODULE_9__.WEBDATASTREAM_CREATE) {
    const webDataStreamName = select(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_7__.CORE_FORMS).getValue(_constants__WEBPACK_IMPORTED_MODULE_9__.FORM_SETUP, 'webDataStreamName');
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_5__.isValidWebDataStreamName)(webDataStreamName), INVARIANT_INVALID_WEBDATASTREAM_NAME);
    if ((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_5__.isValidPropertyID)(propertyID)) {
      invariant__WEBPACK_IMPORTED_MODULE_0___default()(false === doesWebDataStreamExist(propertyID, webDataStreamName), INVARIANT_WEBDATASTREAM_ALREADY_EXISTS);
    }
  }
  const adsConversionID = getAdsConversionID();
  if (adsConversionID !== '') {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_modules_ads_utils_validation__WEBPACK_IMPORTED_MODULE_11__.isValidConversionID)(adsConversionID), INVARIANT_INVALID_ADS_CONVERSION_ID);
  }
}
function validateHaveSettingsChanged(select, state, keys) {
  const {
    settings,
    savedSettings
  } = state;
  const haveConversionTrackingSettingsChanged = select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_12__.CORE_SITE).haveConversionTrackingSettingsChanged();
  const haveGoogleTagGatewaySettingsChanged = select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_12__.CORE_SITE).haveGoogleTagGatewaySettingsChanged();
  if (keys) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(!(0,lodash__WEBPACK_IMPORTED_MODULE_1__.isEqual)((0,lodash__WEBPACK_IMPORTED_MODULE_1__.pick)(settings, keys), (0,lodash__WEBPACK_IMPORTED_MODULE_1__.pick)(savedSettings, keys)) || haveConversionTrackingSettingsChanged || haveGoogleTagGatewaySettingsChanged, _js_googlesitekit_data_create_settings_store__WEBPACK_IMPORTED_MODULE_6__.INVARIANT_SETTINGS_NOT_CHANGED);
  }
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(!(0,lodash__WEBPACK_IMPORTED_MODULE_1__.isEqual)(settings, savedSettings) || haveConversionTrackingSettingsChanged || haveGoogleTagGatewaySettingsChanged, _js_googlesitekit_data_create_settings_store__WEBPACK_IMPORTED_MODULE_6__.INVARIANT_SETTINGS_NOT_CHANGED);
}

/***/ }),

/***/ "./js/modules/analytics-4/datastore/tags.js":
/*!**************************************************!*\
  !*** ./js/modules/analytics-4/datastore/tags.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   actions: () => (/* binding */ actions),
/* harmony export */   controls: () => (/* binding */ controls),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */   initialState: () => (/* binding */ initialState),
/* harmony export */   reducer: () => (/* binding */ reducer),
/* harmony export */   resolvers: () => (/* binding */ resolvers),
/* harmony export */   selectors: () => (/* binding */ selectors)
/* harmony export */ });
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_data_create_existing_tag_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/data/create-existing-tag-store */ "./js/googlesitekit/data/create-existing-tag-store.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_utils_tag_matchers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/tag-matchers */ "./js/modules/analytics-4/utils/tag-matchers.js");
/* harmony import */ var _js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/validation */ "./js/modules/analytics-4/utils/validation.js");
/**
 * `modules/analytics-4` data store: tags.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */





const existingTagStore = (0,_js_googlesitekit_data_create_existing_tag_store__WEBPACK_IMPORTED_MODULE_1__.createExistingTagStore)({
  storeName: _constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4,
  tagMatchers: (0,_js_modules_analytics_4_utils_tag_matchers__WEBPACK_IMPORTED_MODULE_3__.getTagMatchers)(),
  isValidTag: _js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_4__.isValidMeasurementID
});

// Override the `getExistingTag()` resolver to provide the extended Google Tag behavior.
existingTagStore.resolvers.getExistingTag = function* () {
  const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.commonActions.getRegistry();
  let existingTag = registry.select(_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getExistingTag();
  if (existingTag === undefined) {
    existingTag = yield existingTagStore.actions.fetchGetExistingTag();
  }

  // As it's not possible to directly look up a Google Tag container by one of its tag IDs, we look up the container by destination ID (the measurement ID).
  // We then check if the tag ID is included in the container's tag IDs. If so, we have confirmed the existing tag is a Google Tag pointing to the given measurement ID.
  // Otherwise, we ignore the existing tag (set it to null).
  if (existingTag !== null) {
    const container = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.commonActions.await(registry.resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getGoogleTagContainer(existingTag));
    if (!container?.tagIds.includes(existingTag)) {
      existingTag = null;
    }
  }
  registry.dispatch(_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).receiveGetExistingTag(existingTag);
};
const store = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.combineStores)(existingTagStore);
const initialState = store.initialState;
const actions = store.actions;
const controls = store.controls;
const reducer = store.reducer;
const resolvers = store.resolvers;
const selectors = store.selectors;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (store);

/***/ }),

/***/ "./js/modules/analytics-4/datastore/webdatastreams.js":
/*!************************************************************!*\
  !*** ./js/modules/analytics-4/datastore/webdatastreams.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   actions: () => (/* binding */ actions),
/* harmony export */   controls: () => (/* binding */ controls),
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */   initialState: () => (/* binding */ initialState),
/* harmony export */   reducer: () => (/* binding */ reducer),
/* harmony export */   resolvers: () => (/* binding */ resolvers),
/* harmony export */   selectors: () => (/* binding */ selectors)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! googlesitekit-api */ "googlesitekit-api");
/* harmony import */ var googlesitekit_api__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _js_googlesitekit_data_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/data/utils */ "./js/googlesitekit/data/utils.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/googlesitekit/data/create-fetch-store */ "./js/googlesitekit/data/create-fetch-store.js");
/* harmony import */ var _js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/validation */ "./js/modules/analytics-4/utils/validation.js");
/**
 * `modules/analytics-4` data store: webdatastreams.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Internal dependencies
 */








const fetchGetWebDataStreamsStore = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_8__.createFetchStore)({
  baseName: 'getWebDataStreams',
  controlCallback({
    propertyID
  }) {
    return (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__.get)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_6__.MODULE_SLUG_ANALYTICS_4, 'webdatastreams', {
      propertyID
    }, {
      useCache: false
    });
  },
  reducerCallback: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, webDataStreams, {
    propertyID
  }) => {
    state.webdatastreams[propertyID] = Array.isArray(webDataStreams) ? webDataStreams : [];
  }),
  argsToParams(propertyID) {
    return {
      propertyID
    };
  },
  validateParams({
    propertyID
  } = {}) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_9__.isValidPropertyID)(propertyID), 'A valid GA4 propertyID is required.');
  }
});
const fetchGetWebDataStreamsBatchStore = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_8__.createFetchStore)({
  baseName: 'getWebDataStreamsBatch',
  controlCallback({
    propertyIDs
  }) {
    return (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__.get)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_6__.MODULE_SLUG_ANALYTICS_4, 'webdatastreams-batch', {
      propertyIDs
    }, {
      useCache: false
    });
  },
  reducerCallback: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, webDataStreams) => {
    state.webdatastreams = {
      ...state.webdatastreams,
      ...(webDataStreams || {})
    };
  }),
  argsToParams(propertyIDs) {
    return {
      propertyIDs
    };
  },
  validateParams({
    propertyIDs
  } = {}) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(Array.isArray(propertyIDs), 'GA4 propertyIDs must be an array.');
    propertyIDs.forEach(propertyID => {
      invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_9__.isValidPropertyID)(propertyID), 'A valid GA4 propertyID is required.');
    });
  }
});
const fetchCreateWebDataStreamStore = (0,_js_googlesitekit_data_create_fetch_store__WEBPACK_IMPORTED_MODULE_8__.createFetchStore)({
  baseName: 'createWebDataStream',
  controlCallback({
    propertyID,
    displayName
  }) {
    return (0,googlesitekit_api__WEBPACK_IMPORTED_MODULE_2__.set)('modules', _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_6__.MODULE_SLUG_ANALYTICS_4, 'create-webdatastream', {
      propertyID,
      displayName
    });
  },
  reducerCallback: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createReducer)((state, webDataStream, {
    propertyID
  }) => {
    if (!state.webdatastreams[propertyID]) {
      state.webdatastreams[propertyID] = [];
    }
    state.webdatastreams[propertyID].push(webDataStream);
  }),
  argsToParams(propertyID, displayName) {
    return {
      propertyID,
      displayName
    };
  },
  validateParams({
    propertyID,
    displayName
  } = {}) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_9__.isValidPropertyID)(propertyID), 'A valid GA4 propertyID is required.');
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_9__.isValidWebDataStreamName)(displayName), 'A valid web data stream name is required.');
  }
});
const baseInitialState = {
  webdatastreams: {}
};
const baseActions = {
  /**
   * Creates a new GA4 web data stream.
   *
   * @since 1.31.0
   * @since 1.124.0 Added displayName parameter.
   *
   * @param {string} propertyID  GA4 property ID.
   * @param {string} displayName A web data stream name.
   * @return {Object} Object with `response` and `error`.
   */
  createWebDataStream: (0,_js_googlesitekit_data_utils__WEBPACK_IMPORTED_MODULE_4__.createValidatedAction)((propertyID, displayName) => {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(propertyID, 'GA4 propertyID is required.');
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(displayName, 'Web data stream name is required.');
  }, function* (propertyID, displayName) {
    const {
      response,
      error
    } = yield fetchCreateWebDataStreamStore.actions.fetchCreateWebDataStream(propertyID, displayName);
    return {
      response,
      error
    };
  }),
  /**
   * Matches web data stream for provided property.
   *
   * @since 1.38.0
   *
   * @param {string} propertyID GA4 property ID.
   * @return {Object|null} Matched web data stream object on success, otherwise NULL.
   */
  *matchWebDataStream(propertyID) {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    return yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(registry.resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getMatchingWebDataStreamByPropertyID(propertyID));
  }
};
const baseControls = {};
function* resolveGetWebDataStreams(propertyID) {
  const {
    resolveSelect
  } = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
  yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.await(resolveSelect(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getWebDataStreams(propertyID));
}
const baseResolvers = {
  *getWebDataStreams(propertyID) {
    if (!(0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_9__.isValidPropertyID)(propertyID)) {
      return;
    }
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    // Only fetch web data streams if there are none in the store for the given property.
    const webdatastreams = registry.select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getWebDataStreams(propertyID);
    if (webdatastreams === undefined) {
      yield fetchGetWebDataStreamsStore.actions.fetchGetWebDataStreams(propertyID);
    }
  },
  *getWebDataStreamsBatch(propertyIDs) {
    const registry = yield googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.commonActions.getRegistry();
    const webdatastreams = registry.select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getWebDataStreamsBatch(propertyIDs) || {};
    const availablePropertyIDs = Object.keys(webdatastreams);
    const remainingPropertyIDs = (0,lodash__WEBPACK_IMPORTED_MODULE_1__.difference)(propertyIDs, availablePropertyIDs);
    if (remainingPropertyIDs.length > 0) {
      for (let i = 0; i < remainingPropertyIDs.length; i += _constants__WEBPACK_IMPORTED_MODULE_5__.MAX_WEBDATASTREAMS_PER_BATCH) {
        const chunk = remainingPropertyIDs.slice(i, i + _constants__WEBPACK_IMPORTED_MODULE_5__.MAX_WEBDATASTREAMS_PER_BATCH);
        yield fetchGetWebDataStreamsBatchStore.actions.fetchGetWebDataStreamsBatch(chunk);
      }
    }
  },
  getMatchingWebDataStreamByPropertyID: resolveGetWebDataStreams,
  doesWebDataStreamExist: resolveGetWebDataStreams
};
const baseSelectors = {
  /**
   * Gets all GA4 web data streams this account can access.
   *
   * @since 1.31.0
   *
   * @param {Object} state      Data store's state.
   * @param {string} propertyID The GA4 property ID to fetch web data streams for.
   * @return {(Array.<Object>|undefined)} An array of GA4 web data streams; `undefined` if not loaded.
   */
  getWebDataStreams(state, propertyID) {
    return state.webdatastreams[propertyID];
  },
  /**
   * Gets matched web data stream from a list of web data streams.
   *
   * @since 1.31.0
   * @since 1.90.0 Updated to match a data stream from a list of provided web data streams.
   *
   * @param {Object} state       Data store's state.
   * @param {Array}  datastreams A list of web data streams.
   * @return {(Object|null)} A web data stream object if found, otherwise null.
   */
  getMatchingWebDataStream: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => (state, datastreams) => {
    const matchedWebDataStreams = select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getMatchingWebDataStreams(datastreams);
    return matchedWebDataStreams[0] || null;
  }),
  /**
   * Gets web data streams that match the current reference URL.
   *
   * @since 1.98.0
   *
   * @param {Object} state       Data store's state.
   * @param {Array}  datastreams A list of web data streams.
   * @return {Array.<Object>} An array of found matched web data streams.
   */
  getMatchingWebDataStreams: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => (state, datastreams) => {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(Array.isArray(datastreams), 'datastreams must be an array.');
    const matchedWebDataStreams = [];
    for (const datastream of datastreams) {
      if (select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_7__.CORE_SITE).isSiteURLMatch(
      // eslint-disable-next-line sitekit/acronym-case
      datastream.webStreamData?.defaultUri)) {
        matchedWebDataStreams.push(datastream);
      }
    }
    return matchedWebDataStreams;
  }),
  /**
   * Gets matched web data stream for selected property.
   *
   * @since 1.90.0
   *
   * @param {Object} state      Data store's state.
   * @param {string} propertyID The GA4 property ID to find matched web data stream.
   * @return {(Object|null|undefined)} A web data stream object if found, otherwise null; `undefined` if web data streams are not loaded.
   */
  getMatchingWebDataStreamByPropertyID: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => (_state, propertyID) => {
    const datastreams = select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getWebDataStreams(propertyID);
    if (datastreams === undefined) {
      return undefined;
    }
    const matchingDataStream = select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getMatchingWebDataStream(datastreams);
    return matchingDataStream || null;
  }),
  /**
   * Gets web data streams in batch for selected properties.
   *
   * @since 1.32.0
   *
   * @param {Object}         state       Data store's state.
   * @param {Array.<string>} propertyIDs GA4 property IDs.
   * @return {Object} Web data streams.
   */
  getWebDataStreamsBatch(state, propertyIDs) {
    return (0,lodash__WEBPACK_IMPORTED_MODULE_1__.pick)(state.webdatastreams, propertyIDs);
  },
  /**
   * Gets the matched measurement IDs for the given property IDs.
   *
   * @since 1.88.0
   * @since 1.90.0 Use propertyIDs instead of property objects for matching.
   *
   * @param {Object}         state       Data store's state.
   * @param {Array.<string>} propertyIDs GA4 property IDs array of strings.
   * @return {(Object|undefined)} Object with matched property ID as the key and measurement ID as the value, or an empty object if no matches are found; `undefined` if web data streams are not loaded.
   */
  getMatchedMeasurementIDsByPropertyIDs: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => (_state, propertyIDs) => {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(Array.isArray(propertyIDs) && propertyIDs?.length, 'propertyIDs must be an array containing GA4 propertyIDs.');
    propertyIDs.forEach(propertyID => {
      invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_9__.isValidPropertyID)(propertyID), 'A valid GA4 propertyID is required.');
    });
    const datastreams = select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getWebDataStreamsBatch(propertyIDs);
    if (datastreams === undefined) {
      return undefined;
    }
    return propertyIDs.reduce((acc, currentPropertyID) => {
      if (!datastreams[currentPropertyID]?.length) {
        return acc;
      }
      const matchingDataStream = select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getMatchingWebDataStream(datastreams[currentPropertyID]);
      if (!matchingDataStream) {
        return acc;
      }
      const measurementID =
      // eslint-disable-next-line sitekit/acronym-case
      matchingDataStream.webStreamData.measurementId;
      return {
        ...acc,
        [currentPropertyID]: measurementID
      };
    }, {});
  }),
  /**
   * Gets an Analytics config that matches one of provided measurement IDs.
   *
   * @since 1.94.0
   *
   * @param {Object}                state        Data store's state.
   * @param {string|Array.<string>} measurements Single GA4 measurement ID, or array of GA4 measurement ID strings.
   * @return {(Object|null|undefined)} An Analytics config that matches provided one of measurement IDs on success, NULL if no matching config is found, undefined if data hasn't been resolved yet.
   */
  getAnalyticsConfigByMeasurementIDs: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => (state, measurements) => {
    const measurementIDs = Array.isArray(measurements) ? measurements : [measurements];
    let summaries = select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getAccountSummaries();
    if (!Array.isArray(summaries)) {
      return undefined;
    }

    // Sort summaries to have the current account at the very beginning,
    // so we can check it first because its more likely that the current
    // account will contain a measurement ID that we are looking for.
    const currentAccountID = select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getAccountID();
    // Clone summaries to avoid mutating the original array.
    summaries = [...summaries].sort(({
      _id: accountID
    }) => accountID === currentAccountID ? -1 : 0);
    const info = {};
    const propertyIDs = [];
    summaries.forEach(({
      _id: accountID,
      propertySummaries = []
    }) => {
      propertySummaries.forEach(({
        _id: propertyID
      }) => {
        propertyIDs.push(propertyID);
        info[propertyID] = {
          accountID,
          propertyID
        };
      });
    });
    if (propertyIDs.length === 0) {
      return null;
    }

    // eslint-disable-next-line @wordpress/no-unused-vars-before-return
    const datastreams = select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getWebDataStreamsBatch(propertyIDs);
    const resolvedDataStreams = select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).hasFinishedResolution('getWebDataStreamsBatch', [propertyIDs]);

    // Return undefined if web data streams haven't been resolved yet.
    if (!resolvedDataStreams) {
      return undefined;
    }
    let firstlyFoundConfig;
    for (const propertyID in datastreams) {
      if (!datastreams[propertyID]?.length) {
        continue;
      }
      for (const datastream of datastreams[propertyID]) {
        const {
          _id: webDataStreamID,
          webStreamData
        } = datastream;
        const {
          defaultUri: defaultURI,
          // eslint-disable-line sitekit/acronym-case
          measurementId: measurementID // eslint-disable-line sitekit/acronym-case
        } = webStreamData;
        if (!measurementIDs.includes(measurementID)) {
          continue;
        }
        const config = {
          ...info[propertyID],
          webDataStreamID,
          measurementID
        };

        // Remember the firstly found config to return it at the end
        // if we don't manage to find the most suitable config.
        if (!firstlyFoundConfig) {
          firstlyFoundConfig = config;
        }

        // If only one measurement ID is provided, then we don't need
        // to check whether its default URI matches the current
        // reference URL. Otherwise, if we have many measurement IDs
        // then we need to find the one that matches the current
        // reference URL.
        if (measurementIDs.length === 1 || select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_7__.CORE_SITE).isSiteURLMatch(defaultURI)) {
          return config;
        }
      }
    }
    return firstlyFoundConfig || null;
  }),
  /**
   * Checks if web data streams are currently being loaded.
   *
   * This selector was introduced as a convenience for reusing the same loading logic across multiple
   * components, initially the `WebDataStreamSelect` and `SettingsEnhancedMeasurementSwitch` components.
   *
   * @since 1.111.0
   *
   * @param {Object}  state                Data store's state.
   * @param {Object}  args                 Arguments object.
   * @param {boolean} args.hasModuleAccess Whether the current user has access to the Analytics module(s).
   */
  isLoadingWebDataStreams: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => (state, {
    hasModuleAccess
  }) => {
    if (!select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).hasFinishedResolution('getAccountSummaries')) {
      return true;
    }
    const propertyID = select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getPropertyID();
    const loadedWebDataStreams = (0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_9__.isValidPropertyID)(propertyID) && hasModuleAccess ? select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).hasFinishedResolution('getWebDataStreams', [propertyID]) : true;
    if (!loadedWebDataStreams) {
      return true;
    }
    if (select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).hasFinishedSelectingAccount() === false) {
      return true;
    }
    if (select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).isMatchingAccountProperty()) {
      return true;
    }
    return select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).isResolving('getProperty', [propertyID]);
  }),
  /**
   * Checks if a web data stream with the same name already exists.
   *
   * @since 1.124.0
   *
   * @param {Object} state             Data store's state.
   * @param {string} propertyID        GA4 property ID.
   * @param {string} webDataStreamName Web data stream name.
   * @return {(boolean|undefined)} TRUE if web data stream already exists, FALSE otherwise. Undefined if web data streams are not loaded yet.
   */
  doesWebDataStreamExist: (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.createRegistrySelector)(select => (_state, propertyID, webDataStreamName) => {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_modules_analytics_4_utils_validation__WEBPACK_IMPORTED_MODULE_9__.isValidPropertyID)(propertyID), 'A valid GA4 propertyID is required.');
    const webDataStreams = select(_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4).getWebDataStreams(propertyID);
    if (webDataStreams === undefined) {
      return undefined;
    }
    return webDataStreams.some(({
      displayName
    }) => displayName === webDataStreamName);
  })
};
const store = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_3__.combineStores)(fetchGetWebDataStreamsStore, fetchGetWebDataStreamsBatchStore, fetchCreateWebDataStreamStore, {
  initialState: baseInitialState,
  actions: baseActions,
  controls: baseControls,
  resolvers: baseResolvers,
  selectors: baseSelectors
});
const initialState = store.initialState;
const actions = store.actions;
const controls = store.controls;
const reducer = store.reducer;
const resolvers = store.resolvers;
const selectors = store.selectors;
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (store);

/***/ }),

/***/ "./js/modules/analytics-4/hooks/useAllTrafficWidgetReport.js":
/*!*******************************************************************!*\
  !*** ./js/modules/analytics-4/hooks/useAllTrafficWidgetReport.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ useAllTrafficWidgetReport)
/* harmony export */ });
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/**
 * Analytics useAllTrafficWidgetReport custom hook.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */







/**
 * Gets report information for the Dashboard All Traffic GA4 widget.
 *
 * @since 1.153.0
 *
 * @param {Object} reportOptions Report options.
 * @return {Object} Report data.
 */
function useAllTrafficWidgetReport(reportOptions = {}) {
  const viewOnly = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_5__["default"])();
  const canViewSharedAnalytics4 = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    if (!viewOnly) {
      return true;
    }
    return select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).canViewSharedModule(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_4__.MODULE_SLUG_ANALYTICS_4);
  });
  const {
    startDate,
    endDate
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).getDateRangeDates({
    compare: true,
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.DATE_RANGE_OFFSET
  }));
  const entityURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_SITE).getCurrentEntityURL());
  const args = {
    startDate,
    endDate,
    metrics: [{
      name: 'totalUsers'
    }],
    ...reportOptions
  };
  if (entityURL) {
    args.url = entityURL;
  }
  const loaded = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => canViewSharedAnalytics4 && select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [args]));
  const error = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [args]));
  const report = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => {
    return canViewSharedAnalytics4 && select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getReport(args);
  }, [canViewSharedAnalytics4, args]);
  return {
    error,
    loaded,
    report
  };
}

/***/ }),

/***/ "./js/modules/analytics-4/hooks/useAudienceTilesReports.js":
/*!*****************************************************************!*\
  !*** ./js/modules/analytics-4/hooks/useAudienceTilesReports.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ useAudienceTilesReports)
/* harmony export */ });
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/**
 * Analytics useAudienceTilesReports custom hook.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */




/**
 * Checks if the audience reports are loaded for the given report options.
 *
 * @since 1.136.0
 *
 * @param {Object} reportOptions       Report options.
 * @param {Array}  configuredAudiences Configured audiences.
 * @return {boolean} Whether the report is loaded.
 */
function useReportsLoaded(reportOptions, configuredAudiences) {
  return (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => configuredAudiences.reduce((reportsLoaded, audienceResourceName) => {
    const partialDataSiteKitAudience = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getPartialDataSiteKitAudience(audienceResourceName);
    if (partialDataSiteKitAudience === undefined) {
      return {};
    }
    const dimensionFilters = {};
    if (partialDataSiteKitAudience) {
      dimensionFilters.newVsReturning = partialDataSiteKitAudience.audienceSlug === 'new-visitors' ? 'new' : 'returning';
    } else {
      dimensionFilters.audienceResourceName = audienceResourceName;
    }
    const isLoaded = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [{
      ...reportOptions,
      dimensionFilters: {
        ...reportOptions.dimensionFilters,
        ...dimensionFilters
      }
    }]);
    reportsLoaded[audienceResourceName] = isLoaded;
    return reportsLoaded;
  }, {}));
}

/**
 * Checks if there are errors for the audience reports with the given report options.
 *
 * @since 1.136.0
 *
 * @param {Object} reportOptions       Report options.
 * @param {Array}  configuredAudiences Configured audiences.
 * @return {Object} Object with the errors for each audience.
 */
function useReportErrors(reportOptions, configuredAudiences) {
  return (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    return configuredAudiences.reduce((acc, audienceResourceName) => {
      const partialDataSiteKitAudience = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getPartialDataSiteKitAudience(audienceResourceName);
      if (partialDataSiteKitAudience === undefined) {
        return acc;
      }
      const dimensionFilters = {};
      if (partialDataSiteKitAudience) {
        dimensionFilters.newVsReturning = partialDataSiteKitAudience.audienceSlug === 'new-visitors' ? 'new' : 'returning';
      } else {
        dimensionFilters.audienceResourceName = audienceResourceName;
      }
      const error = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [{
        ...reportOptions,
        dimensionFilters: {
          ...reportOptions.dimensionFilters,
          ...dimensionFilters
        }
      }]);
      if (error) {
        acc[audienceResourceName] = error;
      }
      return acc;
    }, {});
  });
}

/**
 * Fetch reports for audience tiles.
 *
 * @since 1.136.0
 *
 * @param {Object}  args                              Arguments for the hook.
 * @param {boolean} args.isSiteKitAudiencePartialData Whether the Site Kit audiences are partially loaded.
 * @param {Array}   args.siteKitAudiences             Site Kit audiences.
 * @param {Array}   args.otherAudiences               Other audiences.
 * @return {Object} Object with the report data.
 */
function useAudienceTilesReports({
  isSiteKitAudiencePartialData,
  siteKitAudiences,
  otherAudiences
}) {
  // An array of audience resource names.
  const configuredAudiences = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).getConfiguredAudiences());
  const audiencesDimensionFilter = {
    audienceResourceName: configuredAudiences
  };
  const dates = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_USER).getDateRangeDates({
    offsetDays: _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.DATE_RANGE_OFFSET,
    compare: true
  }));
  const {
    startDate,
    endDate
  } = dates;
  const shouldFetchReport = isSiteKitAudiencePartialData === undefined ? undefined : otherAudiences.length > 0 || isSiteKitAudiencePartialData === false;
  const shouldFetchSiteKitAudiencesReport = siteKitAudiences.length > 0 ? isSiteKitAudiencePartialData : false;
  const reportOptions = {
    ...dates,
    dimensions: [{
      name: 'audienceResourceName'
    }],
    dimensionFilters: audiencesDimensionFilter,
    metrics: [{
      name: 'totalUsers'
    }, {
      name: 'sessionsPerUser'
    }, {
      name: 'screenPageViewsPerSession'
    }, {
      name: 'screenPageViews'
    }],
    reportID: 'audience-segmentation_use-audience-tiles-reports_hook_reportOptions'
  };
  const report = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => {
    if (shouldFetchReport === undefined) {
      return undefined;
    }
    if (!shouldFetchReport) {
      return null;
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getReport(reportOptions);
  }, [shouldFetchReport, reportOptions]);
  const reportLoaded = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    if (shouldFetchReport === undefined) {
      return undefined;
    }
    if (!shouldFetchReport) {
      // If we don't need to fetch the report, we can consider it loaded to simplify the loading state logic.
      return true;
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [reportOptions]);
  });
  const reportError = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    if (shouldFetchReport === undefined) {
      return undefined;
    }
    if (!shouldFetchReport) {
      return null;
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [reportOptions]);
  });
  const newVsReturningReportOptions = {
    ...dates,
    dimensions: [{
      name: 'newVsReturning'
    }],
    dimensionFilters: {
      newVsReturning: ['new', 'returning']
    },
    metrics: [{
      name: 'totalUsers'
    }, {
      name: 'sessionsPerUser'
    }, {
      name: 'screenPageViewsPerSession'
    }, {
      name: 'screenPageViews'
    }],
    reportID: 'audience-segmentation_use-audience-tiles-reports_hook_newVsReturningReportOptions'
  };
  const siteKitAudiencesReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => {
    if (shouldFetchSiteKitAudiencesReport === undefined) {
      return undefined;
    }
    if (!shouldFetchSiteKitAudiencesReport) {
      return null;
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getReport(newVsReturningReportOptions);
  }, [shouldFetchSiteKitAudiencesReport, newVsReturningReportOptions]);
  const siteKitAudiencesReportLoaded = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    if (shouldFetchSiteKitAudiencesReport === undefined) {
      return undefined;
    }
    if (!shouldFetchSiteKitAudiencesReport) {
      // If we don't need to fetch the report, we can consider it loaded to simplify the loading state logic.
      return true;
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [newVsReturningReportOptions]);
  });
  const siteKitAudiencesReportError = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => {
    if (shouldFetchSiteKitAudiencesReport === undefined) {
      return undefined;
    }
    if (!shouldFetchSiteKitAudiencesReport) {
      return null;
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [newVsReturningReportOptions]);
  });
  const totalPageviewsReportOptions = {
    startDate,
    endDate,
    metrics: [{
      name: 'screenPageViews'
    }],
    reportID: 'audience-segmentation_use-audience-tiles-reports_hook_totalPageviewsReportOptions'
  };
  const totalPageviewsReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => {
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getReport(totalPageviewsReportOptions);
  });
  const totalPageviewsReportLoaded = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).hasFinishedResolution('getReport', [totalPageviewsReportOptions]));
  const totalPageviewsReportError = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [totalPageviewsReportOptions]));
  const totalPageviews = Number(totalPageviewsReport?.totals?.[0]?.metricValues?.[0]?.value) || 0;
  const topCitiesReportOptions = {
    startDate,
    endDate,
    dimensions: ['city'],
    metrics: [{
      name: 'totalUsers'
    }],
    orderby: [{
      metric: {
        metricName: 'totalUsers'
      },
      desc: true
    }],
    limit: 4,
    // Limit is set to 4 so that (not set) can be filtered out and 3 cities remain to display.
    reportID: 'audience-segmentation_use-audience-tiles-reports_hook_topCitiesReportOptions'
  };
  const topCitiesReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getReportForAllAudiences(topCitiesReportOptions, configuredAudiences));
  const topCitiesReportsLoaded = useReportsLoaded(topCitiesReportOptions, configuredAudiences);
  const topCitiesReportErrors = useReportErrors(topCitiesReportOptions, configuredAudiences);
  const topContentReportOptions = {
    startDate,
    endDate,
    dimensions: ['pagePath'],
    metrics: [{
      name: 'screenPageViews'
    }],
    dimensionFilters: {
      'customEvent:googlesitekit_post_type': {
        filterType: 'stringFilter',
        matchType: 'EXACT',
        value: 'post'
      }
    },
    orderby: [{
      metric: {
        metricName: 'screenPageViews'
      },
      desc: true
    }],
    limit: 3,
    reportID: 'audience-segmentation_use-audience-tiles-reports_hook_topContentReportOptions'
  };
  const topContentReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getReportForAllAudiences(topContentReportOptions, configuredAudiences));
  const topContentReportsLoaded = useReportsLoaded(topContentReportOptions, configuredAudiences);
  const topContentReportErrors = useReportErrors(topContentReportOptions, configuredAudiences);
  const topContentPageTitlesReportOptions = {
    startDate,
    endDate,
    dimensions: ['pagePath', 'pageTitle'],
    metrics: [{
      name: 'screenPageViews'
    }],
    dimensionFilters: {
      'customEvent:googlesitekit_post_type': {
        filterType: 'stringFilter',
        matchType: 'EXACT',
        value: 'post'
      }
    },
    orderby: [{
      metric: {
        metricName: 'screenPageViews'
      },
      desc: true
    }],
    limit: 15,
    reportID: 'audience-segmentation_use-audience-tiles-reports_hook_topContentPageTitlesReportOptions'
  };
  const topContentPageTitlesReport = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useInViewSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.MODULES_ANALYTICS_4).getReportForAllAudiences(topContentPageTitlesReportOptions, configuredAudiences));
  const topContentPageTitlesReportsLoaded = useReportsLoaded(topContentPageTitlesReportOptions, configuredAudiences);
  const topContentPageTitlesReportErrors = useReportErrors(topContentPageTitlesReportOptions, configuredAudiences);
  return {
    report,
    reportLoaded,
    reportError,
    siteKitAudiencesReport,
    siteKitAudiencesReportLoaded,
    siteKitAudiencesReportError,
    totalPageviews,
    totalPageviewsReportLoaded,
    totalPageviewsReportError,
    topCitiesReport,
    topCitiesReportsLoaded,
    topCitiesReportErrors,
    topContentReport,
    topContentReportsLoaded,
    topContentReportErrors,
    topContentPageTitlesReport,
    topContentPageTitlesReportsLoaded,
    topContentPageTitlesReportErrors
  };
}

/***/ }),

/***/ "./js/modules/analytics-4/hooks/useCreateCustomDimensionForAudienceEffect.js":
/*!***********************************************************************************!*\
  !*** ./js/modules/analytics-4/hooks/useCreateCustomDimensionForAudienceEffect.js ***!
  \***********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ useCreateCustomDimensionForAudienceEffect)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/**
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */







function useCreateCustomDimensionForAudienceEffect() {
  const isGA4Connected = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_MODULES).isModuleConnected(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_5__.MODULE_SLUG_ANALYTICS_4));
  const propertyID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getPropertyID());
  const hasAnalyticsEditScope = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_USER).hasScope(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.EDIT_SCOPE));
  const autoSubmit = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_6__["default"])(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.AUDIENCE_TILE_CUSTOM_DIMENSION_CREATE, 'autoSubmit');
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_FORMS);
  const {
    fetchCreateCustomDimension,
    receiveIsCustomDimensionGatheringData,
    fetchSyncAvailableCustomDimensions
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_7__.useEffect)(() => {
    async function createDimensionsAndUpdateForm() {
      await fetchCreateCustomDimension(propertyID, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.CUSTOM_DIMENSION_DEFINITIONS.googlesitekit_post_type);

      // If the custom dimension was created successfully, mark it as gathering
      // data immediately so that it doesn't cause unnecessary report requests.
      receiveIsCustomDimensionGatheringData('googlesitekit_post_type', true);

      // Resync available custom dimensions to ensure the newly created custom dimension is available.
      await fetchSyncAvailableCustomDimensions();
      setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.AUDIENCE_TILE_CUSTOM_DIMENSION_CREATE, {
        isAutoCreatingCustomDimensionsForAudience: false,
        isRetrying: false
      });
    }
    if (isGA4Connected && hasAnalyticsEditScope && autoSubmit) {
      setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.AUDIENCE_TILE_CUSTOM_DIMENSION_CREATE, {
        autoSubmit: false,
        isAutoCreatingCustomDimensionsForAudience: true
      });
      createDimensionsAndUpdateForm();
    }
  }, [autoSubmit, fetchCreateCustomDimension, fetchSyncAvailableCustomDimensions, hasAnalyticsEditScope, isGA4Connected, propertyID, receiveIsCustomDimensionGatheringData, setValues]);
  return null;
}

/***/ }),

/***/ "./js/modules/analytics-4/hooks/useCreateCustomDimensionsEffect.js":
/*!*************************************************************************!*\
  !*** ./js/modules/analytics-4/hooks/useCreateCustomDimensionsEffect.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ useCreateCustomDimensionsEffect)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/**
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */








function useCreateCustomDimensionsEffect() {
  const isKeyMetricsSetupCompleted = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_SITE).isKeyMetricsSetupCompleted());
  const isGA4Connected = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.CORE_MODULES).isModuleConnected(_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_6__.MODULE_SLUG_ANALYTICS_4));
  const hasAnalyticsEditScope = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).hasScope(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.EDIT_SCOPE));
  const autoSubmit = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_7__["default"])(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.FORM_CUSTOM_DIMENSIONS_CREATE, 'autoSubmit');
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_FORMS);
  const {
    createCustomDimensions
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.useEffect)(() => {
    async function createDimensionsAndUpdateForm() {
      await createCustomDimensions();
      setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.FORM_CUSTOM_DIMENSIONS_CREATE, {
        isAutoCreatingCustomDimensions: false
      });
    }
    if (isKeyMetricsSetupCompleted && isGA4Connected && hasAnalyticsEditScope && autoSubmit) {
      setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.FORM_CUSTOM_DIMENSIONS_CREATE, {
        autoSubmit: false,
        isAutoCreatingCustomDimensions: true
      });
      createDimensionsAndUpdateForm();
    }
  }, [autoSubmit, createCustomDimensions, hasAnalyticsEditScope, isKeyMetricsSetupCompleted, isGA4Connected, setValues]);
  return null;
}

/***/ }),

/***/ "./js/modules/analytics-4/hooks/useCustomDimensionsData.js":
/*!*****************************************************************!*\
  !*** ./js/modules/analytics-4/hooks/useCustomDimensionsData.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ useCustomDimensionsData)
/* harmony export */ });
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/url */ "../node_modules/@wordpress/url/build-module/add-query-args.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_location_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/location/constants */ "./js/googlesitekit/datastore/location/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_components_KeyMetrics_key_metrics_widgets__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/KeyMetrics/key-metrics-widgets */ "./js/components/KeyMetrics/key-metrics-widgets.js");
/* harmony import */ var _js_modules_analytics_4_utils_custom_dimensions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/modules/analytics-4/utils/custom-dimensions */ "./js/modules/analytics-4/utils/custom-dimensions.js");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/**
 * Custom hook for managing custom dimensions data and state.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */








/**
 * Gets custom dimensions data and state.
 *
 * @since 1.156.0
 *
 * @param {Object}          options               Hook options.
 * @param {Array}           options.dimensions    Custom dimensions array.
 * @param {string}          options.widgetSlug    Widget slug for getting widget configuration.
 * @param {Object|Function} options.reportOptions Report options for data fetching.
 * @return {Object} Object containing custom dimensions data and state.
 */
function useCustomDimensionsData({
  dimensions,
  widgetSlug,
  reportOptions: wrappedReportOptions
}) {
  const {
    requiredCustomDimensions
  } = _js_components_KeyMetrics_key_metrics_widgets__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_WIDGETS[widgetSlug] || {};

  // Determine which custom dimensions to use.
  const customDimensions = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.useMemo)(() => {
    if (Array.isArray(dimensions) && dimensions.length) {
      return dimensions;
    }
    if (Array.isArray(requiredCustomDimensions) && requiredCustomDimensions.length) {
      return requiredCustomDimensions;
    }
    return null;
  }, [dimensions, requiredCustomDimensions]);
  const hasCustomDimensions = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => !customDimensions || select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).hasCustomDimensions(customDimensions));
  const isAutoCreatingCustomDimensions = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_7__["default"])(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.FORM_CUSTOM_DIMENSIONS_CREATE, 'isAutoCreatingCustomDimensions');
  const isCreatingCustomDimensions = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    if (isAutoCreatingCustomDimensions) {
      return true;
    }
    return !!customDimensions && customDimensions.some(dimension => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).isCreatingCustomDimension(dimension));
  });
  const customDimensionsCreationErrors = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    if (!customDimensions) {
      return [];
    }
    const errors = [];
    customDimensions.forEach(dimension => {
      const error = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getCreateCustomDimensionError(dimension);
      if (error) {
        errors.push(error);
      }
    });
    return errors;
  });
  const hasAnalyticsEditScope = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => !!customDimensions && select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).hasScope(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.EDIT_SCOPE));
  const isSyncingAvailableCustomDimensions = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => !!customDimensions && select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).isSyncingAvailableCustomDimensions());
  const redirectURL = (0,_wordpress_url__WEBPACK_IMPORTED_MODULE_9__.addQueryArgs)(__webpack_require__.g.location.href, {
    notification: 'custom_dimensions'
  });
  const isNavigatingToOAuthURL = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    const OAuthURL = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).getConnectURL({
      additionalScopes: [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.EDIT_SCOPE],
      redirectURL
    });
    if (!OAuthURL) {
      return false;
    }
    return select(_js_googlesitekit_datastore_location_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_LOCATION).isNavigatingTo(OAuthURL);
  });
  const reportOptions = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    if (!wrappedReportOptions) {
      return null;
    }
    return (0,lodash__WEBPACK_IMPORTED_MODULE_0__.isFunction)(wrappedReportOptions) ? wrappedReportOptions(select) : wrappedReportOptions;
  });
  const reportError = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    if (!reportOptions) {
      return null;
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getErrorForSelector('getReport', [reportOptions]);
  });
  const loading = isCreatingCustomDimensions || isSyncingAvailableCustomDimensions || isNavigatingToOAuthURL || hasCustomDimensions === undefined;
  const isGatheringData = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    const isGA4GatheringData = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).isGatheringData();
    if (isGA4GatheringData !== false) {
      return isGA4GatheringData;
    }
    if (loading || !hasCustomDimensions) {
      return null;
    }
    if (!customDimensions) {
      return false;
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).areCustomDimensionsGatheringData(customDimensions);
  });
  const dataAvailabilityReportErrors = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    if (!customDimensions) {
      return {};
    }
    return select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4).getDataAvailabilityReportErrors(customDimensions);
  });

  // Invalid custom dimension error handling.
  const hasInvalidCustomDimensionError = isGatheringData && Object.values(dataAvailabilityReportErrors).some(error => (0,_js_modules_analytics_4_utils_custom_dimensions__WEBPACK_IMPORTED_MODULE_6__.isInvalidCustomDimensionError)(error)) || !isGatheringData && (0,_js_modules_analytics_4_utils_custom_dimensions__WEBPACK_IMPORTED_MODULE_6__.isInvalidCustomDimensionError)(reportError);
  const invalidCustomDimensionReportOptions = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => {
    if (!hasInvalidCustomDimensionError) {
      return [];
    }
    if (isGatheringData) {
      const {
        getDataAvailabilityReportOptions
      } = select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4);
      return Object.keys(dataAvailabilityReportErrors).filter(dimension => (0,_js_modules_analytics_4_utils_custom_dimensions__WEBPACK_IMPORTED_MODULE_6__.isInvalidCustomDimensionError)(dataAvailabilityReportErrors[dimension])).map(dimension => getDataAvailabilityReportOptions(dimension));
    }
    if ((0,_js_modules_analytics_4_utils_custom_dimensions__WEBPACK_IMPORTED_MODULE_6__.isInvalidCustomDimensionError)(reportError)) {
      return [reportOptions];
    }
    return [];
  });
  return {
    customDimensions,
    hasCustomDimensions,
    isAutoCreatingCustomDimensions,
    isCreatingCustomDimensions,
    customDimensionsCreationErrors,
    hasAnalyticsEditScope,
    isSyncingAvailableCustomDimensions,
    isNavigatingToOAuthURL,
    reportOptions,
    reportError,
    loading,
    isGatheringData,
    dataAvailabilityReportErrors,
    hasInvalidCustomDimensionError,
    invalidCustomDimensionReportOptions,
    redirectURL
  };
}

/***/ }),

/***/ "./js/modules/analytics-4/hooks/useEnableAudienceGroup.js":
/*!****************************************************************!*\
  !*** ./js/modules/analytics-4/hooks/useEnableAudienceGroup.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ useEnableAudienceGroup)
/* harmony export */ });
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useMountedState.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @wordpress/url */ "../node_modules/@wordpress/url/build-module/add-query-args.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_util_errors__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util/errors */ "./js/util/errors.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/hooks/useFormValue */ "./js/hooks/useFormValue.js");
/**
 * Analytics useEnableAudienceGroup custom hook.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */






function useEnableAudienceGroup({
  redirectURL,
  onSuccess,
  onError,
  onOAuthNavigation
} = {}) {
  const isMounted = (0,react_use__WEBPACK_IMPORTED_MODULE_7__["default"])();
  const [apiErrors, setApiErrors] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.useState)([]);
  const [failedAudiences, setFailedAudiences] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.useState)([]);
  const [isSaving, setIsSaving] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.useState)(false);
  const hasAnalytics4EditScope = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useSelect)(select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER).hasScope(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.EDIT_SCOPE));
  const autoSubmit = (0,_js_hooks_useFormValue__WEBPACK_IMPORTED_MODULE_6__["default"])(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.AUDIENCE_SEGMENTATION_SETUP_FORM, 'autoSubmit');
  const {
    setValues
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_FORMS);
  const {
    setPermissionScopeError
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER);
  const {
    enableAudienceGroup,
    fetchSyncAvailableCustomDimensions,
    determineNeedForAnalytics4EditScope,
    syncAvailableAudiences
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.MODULES_ANALYTICS_4);
  if (!redirectURL) {
    redirectURL = (0,_wordpress_url__WEBPACK_IMPORTED_MODULE_9__.addQueryArgs)(__webpack_require__.g.location.href, {
      notification: 'audience_segmentation'
    });
  }
  const maybeEnableAudienceGroup = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.useCallback)(async () => {
    const {
      error: syncAudiencesError
    } = await syncAvailableAudiences();
    if (syncAudiencesError) {
      return {
        error: syncAudiencesError
      };
    }
    const {
      error: syncDimensionsError
    } = await fetchSyncAvailableCustomDimensions();
    if (syncDimensionsError) {
      return {
        error: syncDimensionsError
      };
    }
    if (!hasAnalytics4EditScope) {
      const {
        error,
        needsScope
      } = await determineNeedForAnalytics4EditScope();
      if (error) {
        return {
          error
        };
      } else if (needsScope) {
        return {
          needsScope: true
        };
      }
    }
    setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.AUDIENCE_SEGMENTATION_SETUP_FORM, {
      autoSubmit: false
    });
    const {
      error,
      failedSiteKitAudienceSlugs
    } = (await enableAudienceGroup(failedAudiences)) || {};
    return {
      error,
      failedSiteKitAudienceSlugs
    };
  }, [enableAudienceGroup, failedAudiences, fetchSyncAvailableCustomDimensions, hasAnalytics4EditScope, determineNeedForAnalytics4EditScope, setValues, syncAvailableAudiences]);
  const onEnableGroups = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.useCallback)(async () => {
    setIsSaving(true);
    const {
      error,
      needsScope,
      failedSiteKitAudienceSlugs
    } = await maybeEnableAudienceGroup();
    if (needsScope) {
      setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.AUDIENCE_SEGMENTATION_SETUP_FORM, {
        autoSubmit: true
      });
      await onOAuthNavigation?.();
      setPermissionScopeError({
        code: _js_util_errors__WEBPACK_IMPORTED_MODULE_4__.ERROR_CODE_MISSING_REQUIRED_SCOPE,
        message: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Additional permissions are required to create new audiences in Analytics.', 'google-site-kit'),
        data: {
          status: 403,
          scopes: [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_5__.EDIT_SCOPE],
          skipModal: true,
          skipDefaultErrorNotifications: true,
          redirectURL,
          errorRedirectURL: __webpack_require__.g.location.href
        }
      });

      // Note that we don't set isSaving to false here, this is to ensure that, when the page begins to navigate to the OAuth flow:
      // - The in-progress state for the Audience Segmentation Setup CTA is retained.
      // - The OAuth error modal doesn't disappear when it's shown and the user clicks the "Retry" button.
      return;
    }
    if (!!error || !!failedSiteKitAudienceSlugs) {
      onError?.();
    } else {
      onSuccess?.();
    }
    if (isMounted()) {
      function newArrayIfNotEmpty(currentArray) {
        return currentArray.length ? [] : currentArray;
      }
      if (error) {
        setApiErrors([error]);
        setFailedAudiences(newArrayIfNotEmpty);
      } else if (Array.isArray(failedSiteKitAudienceSlugs)) {
        setFailedAudiences(failedSiteKitAudienceSlugs);
        setApiErrors(newArrayIfNotEmpty);
      } else {
        setApiErrors(newArrayIfNotEmpty);
        setFailedAudiences(newArrayIfNotEmpty);
      }
      setIsSaving(false);
    }
  }, [maybeEnableAudienceGroup, isMounted, setValues, onOAuthNavigation, setPermissionScopeError, redirectURL, onError, onSuccess]);

  // If the user returns to the component using this hook with the required
  // scope granted, and already submitted the form, trigger the submit again.
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_8__.useEffect)(() => {
    if (hasAnalytics4EditScope && autoSubmit) {
      onEnableGroups();
    }
  }, [hasAnalytics4EditScope, autoSubmit, onEnableGroups]);
  return {
    apiErrors,
    failedAudiences,
    isSaving,
    onEnableGroups
  };
}

/***/ }),

/***/ "./js/modules/analytics-4/hooks/useExistingTagEffect.js":
/*!**************************************************************!*\
  !*** ./js/modules/analytics-4/hooks/useExistingTagEffect.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ useExistingTagEffect)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/**
 * GA4 useExistingTagEffect custom hook.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



/**
 * Toggles `useSnippet` depending on whether there is a existing tag matching the selected GA4 property.
 *
 * @since 1.75.0
 */
function useExistingTagEffect() {
  const {
    setUseSnippet
  } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4);
  const existingTag = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getExistingTag());
  const measurementID = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4).getMeasurementID());
  const skipEffect = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useRef)(true);
  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useEffect)(() => {
    if (existingTag && measurementID !== undefined) {
      if (measurementID === '' || skipEffect.current) {
        skipEffect.current = false;
        return;
      }
      if (measurementID === existingTag) {
        // Disable the Analytics snippet if there is an existing tag that
        // matches the currently selected property.
        setUseSnippet(false);
      } else {
        // Otherwise enable the Analytics snippet again.
        setUseSnippet(true);
      }
    }
  }, [setUseSnippet, existingTag, measurementID]);
}

/***/ }),

/***/ "./js/modules/analytics-4/hooks/useSyncGoogleTagEffect.js":
/*!****************************************************************!*\
  !*** ./js/modules/analytics-4/hooks/useSyncGoogleTagEffect.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ useSyncGoogleTagEffect)
/* harmony export */ });
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useMount.js");
/* harmony import */ var _js_googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/googlesitekit-data */ "./js/googlesitekit-data.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/**
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */


function useSyncGoogleTagEffect() {
  const {
    syncGoogleTagSettings
  } = (0,_js_googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.MODULES_ANALYTICS_4);
  (0,react_use__WEBPACK_IMPORTED_MODULE_2__["default"])(() => {
    // The sync action has its own guards internally,
    // so it's safe to use uncondionally here.
    syncGoogleTagSettings();
  });
  return null;
}

/***/ }),

/***/ "./js/modules/analytics-4/index.js":
/*!*****************************************!*\
  !*** ./js/modules/analytics-4/index.js ***!
  \*****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   ANALYTICS_4_NOTIFICATIONS: () => (/* binding */ ANALYTICS_4_NOTIFICATIONS),
/* harmony export */   registerModule: () => (/* binding */ registerModule),
/* harmony export */   registerNotifications: () => (/* binding */ registerNotifications),
/* harmony export */   registerStore: () => (/* reexport safe */ _datastore__WEBPACK_IMPORTED_MODULE_26__.registerStore),
/* harmony export */   registerWidgets: () => (/* binding */ registerWidgets)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _components_widgets__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./components/widgets */ "./js/modules/analytics-4/components/widgets/index.js");
/* harmony import */ var _svg_graphics_analytics_svg__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/svg/graphics/analytics.svg */ "./svg/graphics/analytics.svg");
/* harmony import */ var _datastore_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/googlesitekit/widgets/default-areas */ "./js/googlesitekit/widgets/default-areas.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _components_settings__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/settings */ "./js/modules/analytics-4/components/settings/index.js");
/* harmony import */ var _components_setup__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./components/setup */ "./js/modules/analytics-4/components/setup/index.js");
/* harmony import */ var _components_dashboard__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./components/dashboard */ "./js/modules/analytics-4/components/dashboard/index.js");
/* harmony import */ var _components_module__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./components/module */ "./js/modules/analytics-4/components/module/index.js");
/* harmony import */ var _components_audience_segmentation_dashboard__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./components/audience-segmentation/dashboard */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/index.js");
/* harmony import */ var _components_DashboardMainEffectComponent__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./components/DashboardMainEffectComponent */ "./js/modules/analytics-4/components/DashboardMainEffectComponent.js");
/* harmony import */ var _components_audience_segmentation_dashboard_AudienceSegmentationIntroductoryOverlayNotification__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./components/audience-segmentation/dashboard/AudienceSegmentationIntroductoryOverlayNotification */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationIntroductoryOverlayNotification.js");
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_constants__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/js/googlesitekit/constants */ "./js/googlesitekit/constants.js");
/* harmony import */ var _js_modules_ads_constants__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/js/modules/ads/constants */ "./js/modules/ads/constants.js");
/* harmony import */ var _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/js/googlesitekit/notifications/constants */ "./js/googlesitekit/notifications/constants.js");
/* harmony import */ var _components_audience_segmentation_dashboard_AudienceSegmentationSetupCTABanner__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./components/audience-segmentation/dashboard/AudienceSegmentationSetupCTABanner */ "./js/modules/analytics-4/components/audience-segmentation/dashboard/AudienceSegmentationSetupCTABanner.js");
/* harmony import */ var _components_notifications__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./components/notifications */ "./js/modules/analytics-4/components/notifications/index.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./constants */ "./js/modules/analytics-4/constants.js");
/* harmony import */ var _components_widgets_ConversionReportingNotificationCTAWidget__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./components/widgets/ConversionReportingNotificationCTAWidget */ "./js/modules/analytics-4/components/widgets/ConversionReportingNotificationCTAWidget.js");
/* harmony import */ var _components_notifications_EnhancedConversionsNotification__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./components/notifications/EnhancedConversionsNotification */ "./js/modules/analytics-4/components/notifications/EnhancedConversionsNotification.js");
/* harmony import */ var _js_util_async__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @/js/util/async */ "./js/util/async.js");
/* harmony import */ var _js_googlesitekit_data_requirements__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! @/js/googlesitekit/data-requirements */ "./js/googlesitekit/data-requirements/index.js");
/* harmony import */ var _js_modules_analytics_4_data_requirements__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! @/js/modules/analytics-4/data-requirements */ "./js/modules/analytics-4/data-requirements/index.js");
/* harmony import */ var _js_features__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! @/js/features */ "./js/features/index.js");
/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./datastore */ "./js/modules/analytics-4/datastore/index.js");
/**
 * Analytics-4 module initialization.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


























function registerModule(modules) {
  modules.registerModule(_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4, {
    storeName: _datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4,
    SettingsEditComponent: _components_settings__WEBPACK_IMPORTED_MODULE_6__.SettingsEdit,
    SettingsViewComponent: _components_settings__WEBPACK_IMPORTED_MODULE_6__.SettingsView,
    SetupComponent: _components_setup__WEBPACK_IMPORTED_MODULE_7__.SetupMain,
    DashboardMainEffectComponent: _components_DashboardMainEffectComponent__WEBPACK_IMPORTED_MODULE_11__["default"],
    Icon: _svg_graphics_analytics_svg__WEBPACK_IMPORTED_MODULE_2__["default"],
    features: [(0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Your site will no longer send data to Google Analytics', 'google-site-kit'), (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Analytics reports in Site Kit will be disabled', 'google-site-kit')]
  });
}
function registerWidgets(widgets) {
  // Register Analytics 4 Widgets.
  widgets.registerWidget('analyticsAllTrafficGA4', {
    Component: _components_dashboard__WEBPACK_IMPORTED_MODULE_8__.DashboardAllTrafficWidgetGA4,
    width: widgets.WIDGET_WIDTHS.FULL,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4]
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_TRAFFIC_PRIMARY, _js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_ENTITY_DASHBOARD_TRAFFIC_PRIMARY]);
  widgets.registerWidget('analyticsAudienceTiles', {
    Component: _components_audience_segmentation_dashboard__WEBPACK_IMPORTED_MODULE_10__.AudienceTilesWidget,
    width: widgets.WIDGET_WIDTHS.FULL,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => {
      const configuredAudiences = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).getConfiguredAudiences();
      return !!configuredAudiences;
    }
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_TRAFFIC_AUDIENCE_SEGMENTATION]);
  widgets.registerWidget('analyticsAudienceSecondaryUserSetup', {
    Component: _components_audience_segmentation_dashboard__WEBPACK_IMPORTED_MODULE_10__.SecondaryUserSetupWidget,
    width: widgets.WIDGET_WIDTHS.FULL,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => {
      const isAnalyticsConnected = select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_13__.CORE_MODULES).isModuleConnected(_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4);

      // If Analytics is not connected, we can return early.
      if (!isAnalyticsConnected) {
        return false;
      }
      const availableAudiences = select(_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getAvailableAudiences();
      const configuredAudiences = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).getConfiguredAudiences();
      const audienceSegmentationSetupCompletedBy = select(_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getAudienceSegmentationSetupCompletedBy();
      return availableAudiences?.length && configuredAudiences === null && audienceSegmentationSetupCompletedBy !== null;
    }
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_TRAFFIC_AUDIENCE_SEGMENTATION]);
  widgets.registerWidget('analyticsAudiencePrimaryUserSetup', {
    Component: _components_audience_segmentation_dashboard__WEBPACK_IMPORTED_MODULE_10__.PrimaryUserSetupWidget,
    width: widgets.WIDGET_WIDTHS.FULL,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => {
      if (!(0,_js_features__WEBPACK_IMPORTED_MODULE_25__.isFeatureEnabled)('setupFlowRefresh')) {
        return false;
      }
      const isAnalyticsConnected = select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_13__.CORE_MODULES).isModuleConnected(_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4);
      if (!isAnalyticsConnected) {
        return false;
      }
      const availableAudiences = select(_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getAvailableAudiences();
      const configuredAudiences = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).getConfiguredAudiences();
      const audienceSegmentationSetupCompletedBy = select(_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.MODULES_ANALYTICS_4).getAudienceSegmentationSetupCompletedBy();
      return availableAudiences?.length && configuredAudiences === null && audienceSegmentationSetupCompletedBy === null;
    }
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_TRAFFIC_AUDIENCE_SEGMENTATION]);
  widgets.registerWidget('audienceConnectAnalyticsCTA', {
    Component: _components_audience_segmentation_dashboard__WEBPACK_IMPORTED_MODULE_10__.ConnectAnalyticsCTAWidget,
    width: widgets.WIDGET_WIDTHS.FULL,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => {
      const isAnalyticsConnected = select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_13__.CORE_MODULES).isModuleConnected(_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4);
      const configuredAudiences = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).getConfiguredAudiences();
      const isAudienceSegmentationWidgetHidden = select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isAudienceSegmentationWidgetHidden();
      return configuredAudiences?.length > 0 && isAudienceSegmentationWidgetHidden === false && !isAnalyticsConnected;
    }
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_TRAFFIC_AUDIENCE_SEGMENTATION]);
  widgets.registerWidget('analyticsAudienceInfoNotice', {
    Component: _components_audience_segmentation_dashboard__WEBPACK_IMPORTED_MODULE_10__.InfoNoticeWidget,
    width: widgets.WIDGET_WIDTHS.FULL,
    priority: 2,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4]
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_TRAFFIC_AUDIENCE_SEGMENTATION]);
  widgets.registerWidget('analyticsOverallPageMetricsGA4', {
    Component: _components_dashboard__WEBPACK_IMPORTED_MODULE_8__.DashboardOverallPageMetricsWidgetGA4,
    width: widgets.WIDGET_WIDTHS.FULL,
    priority: 3,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4]
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_ENTITY_DASHBOARD_CONTENT_PRIMARY]);
  widgets.registerWidget('analyticsModulePopularPagesGA4', {
    Component: _components_module__WEBPACK_IMPORTED_MODULE_9__.ModulePopularPagesWidgetGA4,
    width: widgets.WIDGET_WIDTHS.FULL,
    priority: 4,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4]
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_CONTENT_PRIMARY]);

  /*
   * Key metrics widgets.
   */
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_RECENT_TRENDING_PAGES, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.TopRecentTrendingPagesWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_RECENT_TRENDING_PAGES)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_POPULAR_AUTHORS, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.PopularAuthorsWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_POPULAR_AUTHORS)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_CATEGORIES, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.TopCategoriesWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_CATEGORIES)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_POPULAR_CONTENT, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.PopularContentWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_POPULAR_CONTENT)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_POPULAR_PRODUCTS, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.PopularProductsWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_POPULAR_PRODUCTS)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_PAGES_PER_VISIT, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.PagesPerVisitWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_PAGES_PER_VISIT)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_VISIT_LENGTH, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.VisitLengthWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_VISIT_LENGTH)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_VISITS_PER_VISITOR, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.VisitsPerVisitorWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_VISITS_PER_VISITOR)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_MOST_ENGAGING_PAGES, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.MostEngagingPagesWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_MOST_ENGAGING_PAGES)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_LEAST_ENGAGING_PAGES, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.LeastEngagingPagesWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_LEAST_ENGAGING_PAGES)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_RETURNING_VISITOR_PAGES, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.TopReturningVisitorPages,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_RETURNING_VISITOR_PAGES)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_NEW_VISITORS, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.NewVisitorsWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_NEW_VISITORS)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_RETURNING_VISITORS, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.ReturningVisitorsWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_RETURNING_VISITORS)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_TRAFFIC_SOURCE, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.TopTrafficSourceWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_TRAFFIC_SOURCE)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_ADD_TO_CART, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.TopTrafficSourceDrivingAddToCartWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_ADD_TO_CART)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_LEADS, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.TopTrafficSourceDrivingLeadsWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_LEADS)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_PURCHASES, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.TopTrafficSourceDrivingPurchasesWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_TRAFFIC_SOURCE_DRIVING_PURCHASES)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_ENGAGED_TRAFFIC_SOURCE, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.EngagedTrafficSourceWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_ENGAGED_TRAFFIC_SOURCE)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_CONVERTING_TRAFFIC_SOURCE, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.TopConvertingTrafficSourceWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_CONVERTING_TRAFFIC_SOURCE)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_CITIES, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.TopCitiesWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_CITIES)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_CITIES_DRIVING_LEADS, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.TopCitiesDrivingLeadsWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_CITIES_DRIVING_LEADS)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_PAGES_DRIVING_LEADS, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.TopPagesDrivingLeadsWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_PAGES_DRIVING_LEADS)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_CITIES_DRIVING_ADD_TO_CART, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.TopCitiesDrivingAddToCartWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_CITIES_DRIVING_ADD_TO_CART)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_CITIES_DRIVING_PURCHASES, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.TopCitiesDrivingPurchasesWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_CITIES_DRIVING_PURCHASES)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_DEVICE_DRIVING_PURCHASES, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.TopDeviceDrivingPurchasesWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_DEVICE_DRIVING_PURCHASES)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_COUNTRIES, {
    Component: _components_widgets__WEBPACK_IMPORTED_MODULE_1__.TopCountriesWidget,
    width: widgets.WIDGET_WIDTHS.QUARTER,
    priority: 1,
    wrapWidget: false,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4],
    isActive: select => select(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.CORE_USER).isKeyMetricActive(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_5__.KM_ANALYTICS_TOP_COUNTRIES)
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
  widgets.registerWidget('keyMetricsEventDetectionCalloutNotification', {
    Component: _components_widgets_ConversionReportingNotificationCTAWidget__WEBPACK_IMPORTED_MODULE_20__["default"],
    width: [widgets.WIDGET_WIDTHS.FULL],
    priority: 0,
    modules: [_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4]
  }, [_js_googlesitekit_widgets_default_areas__WEBPACK_IMPORTED_MODULE_4__.AREA_MAIN_DASHBOARD_KEY_METRICS_PRIMARY]);
}
const ANALYTICS_4_NOTIFICATIONS = {
  [_components_audience_segmentation_dashboard_AudienceSegmentationSetupCTABanner__WEBPACK_IMPORTED_MODULE_17__.AUDIENCE_SEGMENTATION_SETUP_CTA_NOTIFICATION]: {
    Component: _components_audience_segmentation_dashboard_AudienceSegmentationSetupCTABanner__WEBPACK_IMPORTED_MODULE_17__["default"],
    priority: _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_16__.PRIORITY.SETUP_CTA_LOW,
    areaSlug: _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_16__.NOTIFICATION_AREAS.DASHBOARD_TOP,
    groupID: _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_16__.NOTIFICATION_GROUPS.SETUP_CTAS,
    viewContexts: [_js_googlesitekit_constants__WEBPACK_IMPORTED_MODULE_14__.VIEW_CONTEXT_MAIN_DASHBOARD],
    checkRequirements: (0,_js_util_async__WEBPACK_IMPORTED_MODULE_22__.asyncRequireAll)((0,_js_googlesitekit_data_requirements__WEBPACK_IMPORTED_MODULE_23__.requireModuleConnected)(_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4), (0,_js_modules_analytics_4_data_requirements__WEBPACK_IMPORTED_MODULE_24__.requireDataIsAvailableOnLoad)(), (0,_js_util_async__WEBPACK_IMPORTED_MODULE_22__.asyncRequire)(false, (0,_js_modules_analytics_4_data_requirements__WEBPACK_IMPORTED_MODULE_24__.requireAudienceSegmentationSetupCompleted)())),
    isDismissible: true,
    dismissRetries: 1
  },
  'web-data-stream-not-available-notification': {
    Component: _components_notifications__WEBPACK_IMPORTED_MODULE_18__.WebDataStreamNotAvailableNotification,
    priority: _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_16__.PRIORITY.ERROR_LOW,
    areaSlug: _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_16__.NOTIFICATION_AREAS.HEADER,
    viewContexts: [_js_googlesitekit_constants__WEBPACK_IMPORTED_MODULE_14__.VIEW_CONTEXT_MAIN_DASHBOARD],
    isDismissible: true,
    checkRequirements: (0,_js_util_async__WEBPACK_IMPORTED_MODULE_22__.asyncRequireAll)((0,_js_googlesitekit_data_requirements__WEBPACK_IMPORTED_MODULE_23__.requireModuleConnected)(_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4), (0,_js_googlesitekit_data_requirements__WEBPACK_IMPORTED_MODULE_23__.requireModuleOwnership)(_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4), (0,_js_googlesitekit_data_requirements__WEBPACK_IMPORTED_MODULE_23__.requireScope)(_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.GTM_SCOPE),
    // Require connected datastream is NOT available.
    (0,_js_modules_analytics_4_data_requirements__WEBPACK_IMPORTED_MODULE_24__.requireWebDataStreamUnavailable)())
  },
  'google-tag-id-mismatch': {
    Component: _components_notifications__WEBPACK_IMPORTED_MODULE_18__.GoogleTagIDMismatchNotification,
    priority: _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_16__.PRIORITY.ERROR_LOW,
    areaSlug: _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_16__.NOTIFICATION_AREAS.HEADER,
    viewContexts: [_js_googlesitekit_constants__WEBPACK_IMPORTED_MODULE_14__.VIEW_CONTEXT_MAIN_DASHBOARD],
    isDismissible: false,
    checkRequirements: (0,_js_util_async__WEBPACK_IMPORTED_MODULE_22__.asyncRequireAll)((0,_js_googlesitekit_data_requirements__WEBPACK_IMPORTED_MODULE_23__.requireModuleConnected)(_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4), (0,_js_googlesitekit_data_requirements__WEBPACK_IMPORTED_MODULE_23__.requireModuleOwnership)(_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4), (0,_js_googlesitekit_data_requirements__WEBPACK_IMPORTED_MODULE_23__.requireScope)(_datastore_constants__WEBPACK_IMPORTED_MODULE_3__.GTM_SCOPE), (0,_js_modules_analytics_4_data_requirements__WEBPACK_IMPORTED_MODULE_24__.requireMismatchedGoogleTag)())
  },
  'enhanced-measurement-notification': {
    Component: _components_dashboard__WEBPACK_IMPORTED_MODULE_8__.EnhancedMeasurementActivationBanner,
    priority: _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_16__.PRIORITY.SETUP_CTA_LOW,
    areaSlug: _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_16__.NOTIFICATION_AREAS.DASHBOARD_TOP,
    groupID: _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_16__.NOTIFICATION_GROUPS.SETUP_CTAS,
    viewContexts: [_js_googlesitekit_constants__WEBPACK_IMPORTED_MODULE_14__.VIEW_CONTEXT_MAIN_DASHBOARD],
    isDismissible: true,
    checkRequirements: (0,_js_util_async__WEBPACK_IMPORTED_MODULE_22__.asyncRequireAll)((0,_js_googlesitekit_data_requirements__WEBPACK_IMPORTED_MODULE_23__.requireModuleConnected)(_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4),
    // Check if the prompt with the legacy key used before the banner was refactored
    // to use the `notification ID` as the dismissal key, is dismissed.
    (0,_js_util_async__WEBPACK_IMPORTED_MODULE_22__.asyncRequire)(false, (0,_js_googlesitekit_data_requirements__WEBPACK_IMPORTED_MODULE_23__.requireItemDismissed)(_constants__WEBPACK_IMPORTED_MODULE_19__.LEGACY_ENHANCED_MEASUREMENT_ACTIVATION_BANNER_DISMISSED_ITEM_KEY)), (0,_js_util_async__WEBPACK_IMPORTED_MODULE_22__.asyncRequireAny)((0,_js_googlesitekit_data_requirements__WEBPACK_IMPORTED_MODULE_23__.requireModuleOwnership)(_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4), (0,_js_googlesitekit_data_requirements__WEBPACK_IMPORTED_MODULE_23__.requireModuleAccess)(_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4)), (0,_js_util_async__WEBPACK_IMPORTED_MODULE_22__.asyncRequire)(false, (0,_js_modules_analytics_4_data_requirements__WEBPACK_IMPORTED_MODULE_24__.requireEnhancedMeasurementEnabled)()))
  },
  [_components_audience_segmentation_dashboard_AudienceSegmentationIntroductoryOverlayNotification__WEBPACK_IMPORTED_MODULE_12__.AUDIENCE_SEGMENTATION_INTRODUCTORY_OVERLAY_NOTIFICATION]: {
    Component: _components_audience_segmentation_dashboard__WEBPACK_IMPORTED_MODULE_10__.AudienceSegmentationIntroductoryOverlayNotification,
    priority: _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_16__.PRIORITY.SETUP_CTA_HIGH,
    areaSlug: _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_16__.NOTIFICATION_AREAS.OVERLAYS,
    groupID: _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_16__.NOTIFICATION_GROUPS.SETUP_CTAS,
    viewContexts: [_js_googlesitekit_constants__WEBPACK_IMPORTED_MODULE_14__.VIEW_CONTEXT_MAIN_DASHBOARD, _js_googlesitekit_constants__WEBPACK_IMPORTED_MODULE_14__.VIEW_CONTEXT_MAIN_DASHBOARD_VIEW_ONLY],
    isDismissible: true,
    checkRequirements: (0,_js_util_async__WEBPACK_IMPORTED_MODULE_22__.asyncRequireAll)((0,_js_googlesitekit_data_requirements__WEBPACK_IMPORTED_MODULE_23__.requireModuleConnected)(_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4), (0,_js_modules_analytics_4_data_requirements__WEBPACK_IMPORTED_MODULE_24__.requireAudienceSegmentationSetupCompleted)(), (0,_js_util_async__WEBPACK_IMPORTED_MODULE_22__.asyncRequire)(false, (0,_js_googlesitekit_data_requirements__WEBPACK_IMPORTED_MODULE_23__.requireAudienceSegmentationWidgetHidden)()),
    // Only show the notification to users who are authenticated or the module is shared with.
    (0,_js_util_async__WEBPACK_IMPORTED_MODULE_22__.asyncRequireAny)((0,_js_googlesitekit_data_requirements__WEBPACK_IMPORTED_MODULE_23__.requireIsAuthenticated)(), (0,_js_googlesitekit_data_requirements__WEBPACK_IMPORTED_MODULE_23__.requireCanViewSharedModule)(_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4)),
    // Only show if the current user is not the one who set up AS.
    (0,_js_util_async__WEBPACK_IMPORTED_MODULE_22__.asyncRequire)(false, (0,_js_modules_analytics_4_data_requirements__WEBPACK_IMPORTED_MODULE_24__.requireAudienceSegmentationSetupCompletedByUser)()))
  },
  [_components_notifications_EnhancedConversionsNotification__WEBPACK_IMPORTED_MODULE_21__.ENHANCED_CONVERSIONS_NOTIFICATION_ANALYTICS]: {
    Component: _components_notifications_EnhancedConversionsNotification__WEBPACK_IMPORTED_MODULE_21__["default"],
    priority: _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_16__.PRIORITY.SETUP_CTA_HIGH,
    areaSlug: _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_16__.NOTIFICATION_AREAS.DASHBOARD_TOP,
    groupID: _js_googlesitekit_notifications_constants__WEBPACK_IMPORTED_MODULE_16__.NOTIFICATION_GROUPS.SETUP_CTAS,
    viewContexts: [_js_googlesitekit_constants__WEBPACK_IMPORTED_MODULE_14__.VIEW_CONTEXT_MAIN_DASHBOARD],
    checkRequirements: (0,_js_util_async__WEBPACK_IMPORTED_MODULE_22__.asyncRequireAll)((0,_js_googlesitekit_data_requirements__WEBPACK_IMPORTED_MODULE_23__.requireModuleConnected)(_constants__WEBPACK_IMPORTED_MODULE_19__.MODULE_SLUG_ANALYTICS_4), (0,_js_util_async__WEBPACK_IMPORTED_MODULE_22__.asyncRequire)(false, (0,_js_googlesitekit_data_requirements__WEBPACK_IMPORTED_MODULE_23__.requireModuleConnected)(_js_modules_ads_constants__WEBPACK_IMPORTED_MODULE_15__.MODULE_SLUG_ADS))),
    isDismissible: true,
    featureFlag: 'gtagUserData'
  }
};
function registerNotifications(notifications) {
  for (const notificationID in ANALYTICS_4_NOTIFICATIONS) {
    notifications.registerNotification(notificationID, ANALYTICS_4_NOTIFICATIONS[notificationID]);
  }
}

/***/ }),

/***/ "./js/modules/analytics-4/utils/account.js":
/*!*************************************************!*\
  !*** ./js/modules/analytics-4/utils/account.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   getAccountDefaults: () => (/* binding */ getAccountDefaults),
/* harmony export */   populateAccountID: () => (/* binding */ populateAccountID),
/* harmony export */   populateAccountSummaries: () => (/* binding */ populateAccountSummaries),
/* harmony export */   populatePropertyAndAccountIds: () => (/* binding */ populatePropertyAndAccountIds)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/url */ "../node_modules/@wordpress/url/build-module/is-url.js");
/* harmony import */ var _countries_timezones__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./countries-timezones */ "./js/modules/analytics-4/utils/countries-timezones.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/**
 * Account helpers.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



/**
 * Gets default values for a new account.
 *
 * @since 1.98.0
 * @since 1.111.0 Added enhanced measurement enabled state to return value.
 *
 * @param {Object} args              Site information.
 * @param {string} args.siteName     Site name.
 * @param {string} args.siteURL      Site home URL.
 * @param {string} args.timezone     Site timezone.
 * @param {string} _fallbackTimezone Fallback timezone. Defaults to local timezone.
 *                                   This parameter should only be used for providing a deterministic fallback in tests.
 * @return {Object} Default property values for a new account.
 */
function getAccountDefaults({
  siteName,
  siteURL,
  timezone
}, _fallbackTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone) {
  invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_wordpress_url__WEBPACK_IMPORTED_MODULE_3__.isURL)(siteURL), 'A valid siteURL is required.');
  const {
    hostname,
    pathname
  } = new URL(siteURL);
  return {
    accountName: siteName || hostname,
    propertyName: `${hostname}${pathname}`.replace(/\/$/, ''),
    dataStreamName: hostname,
    countryCode: _countries_timezones__WEBPACK_IMPORTED_MODULE_1__.countryCodesByTimezone[timezone] || _countries_timezones__WEBPACK_IMPORTED_MODULE_1__.countryCodesByTimezone[_fallbackTimezone],
    timezone: _countries_timezones__WEBPACK_IMPORTED_MODULE_1__.countryCodesByTimezone[timezone] ? timezone : _fallbackTimezone,
    [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.ENHANCED_MEASUREMENT_ENABLED]: true
  };
}

/**
 * Appends an account ID to an account object.
 *
 * @since 1.138.0
 *
 * @param {Object} account Account object.
 * @return {Object} Account object with an appended ID.
 */
function populateAccountID(account) {
  const matches = account.account?.match(/accounts\/([^/]+)/);
  const _id = matches?.[1];
  return {
    ...account,
    _id
  };
}

/**
 * Appends property and account IDs to a property object.
 *
 * @since 1.138.0
 *
 * @param {Object} property Property object.
 * @return {Object} Property object with appended IDs.
 */
function populatePropertyAndAccountIds(property) {
  const propertyMatches = property.property?.match(/properties\/([^/]+)/);
  const _id = propertyMatches?.[1];
  const accountMatches = property.parent?.match(/accounts\/([^/]+)/);
  const _accountID = accountMatches?.[1];
  return {
    ...property,
    _id,
    _accountID
  };
}

/**
 * Populates a list of accountSummaries with IDs for accounts and properties.
 *
 * @since 1.147.0
 *
 * @param {Array|unknown} accountSummaries Account summaries to populate.
 * @return {Array|unknown} Populated account summaries or given value if not an array.
 */
function populateAccountSummaries(accountSummaries) {
  if (!Array.isArray(accountSummaries)) {
    return accountSummaries;
  }
  return accountSummaries.map(account => {
    return {
      ...populateAccountID(account),
      propertySummaries: (account.propertySummaries || []).map(property => populatePropertyAndAccountIds(property))
    };
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/utils/chart.js":
/*!***********************************************!*\
  !*** ./js/modules/analytics-4/utils/chart.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   extractAnalyticsDataForPieChart: () => (/* binding */ extractAnalyticsDataForPieChart),
/* harmony export */   isSingleSlice: () => (/* binding */ isSingleSlice)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/**
 * Analytics utility functions.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Extracts data required for a pie chart from the Analytics 4 report information.
 *
 * @since 1.96.0
 *
 * @param {Array}    report                    The report data.
 * @param {Object}   [options]                 Optional. Data extraction options.
 * @param {number}   [options.keyColumnIndex]  Optional. The number of a column to extract metrics data from.
 * @param {number}   [options.maxSlices]       Optional. Limit the number of slices to display.
 * @param {boolean}  [options.withOthers]      Optional. Whether to add "Others" record to the data map. Only relevant
 *                                             if `maxSlices` is passed. If passed, the final slice will be the
 *                                             "Others" slice, i.e. the number of actual row slices will be
 *                                             `maxSlices - 1`.
 * @param {Function} [options.tooltipCallback] Optional. A callback function for tooltip column values.
 * @return {Array} Extracted data.
 */
function extractAnalyticsDataForPieChart(report, options = {}) {
  const {
    keyColumnIndex = 0,
    maxSlices,
    withOthers = false,
    tooltipCallback
  } = options;
  const {
    rows = []
  } = report || {};
  const withTooltips = typeof tooltipCallback === 'function';
  const columns = ['Source', 'Percent'];
  if (withTooltips) {
    columns.push({
      type: 'string',
      role: 'tooltip',
      p: {
        html: true
      }
    });
  }
  const dataMap = [columns];
  const currentDateRangeRows = rows.filter(({
    dimensionValues
  }) => dimensionValues[1].value === 'date_range_0');
  const totalCurrent = currentDateRangeRows.reduce((sum, row) => sum + parseInt(row.metricValues[0].value, 10), 0);
  const previousDateRangeRows = rows.filter(({
    dimensionValues
  }) => dimensionValues[1].value === 'date_range_1');
  const totalPrevious = previousDateRangeRows.reduce((sum, row) => sum + parseInt(row.metricValues[0].value, 10), 0);
  let hasOthers = withOthers;
  let rowsNumber = currentDateRangeRows.length;
  let othersCurrent = totalCurrent;
  let othersPrevious = totalPrevious;
  if (maxSlices > 0) {
    hasOthers = withOthers && currentDateRangeRows.length > maxSlices;
    rowsNumber = Math.min(currentDateRangeRows.length, hasOthers ? maxSlices - 1 : maxSlices);
  } else {
    hasOthers = false;
    rowsNumber = currentDateRangeRows.length;
  }
  for (let i = 0; i < rowsNumber; i++) {
    const row = currentDateRangeRows[i];
    const usersCurrent = row.metricValues[keyColumnIndex].value;
    const previousRow = previousDateRangeRows.find(({
      dimensionValues
    }) => dimensionValues[0].value === row.dimensionValues[0].value);
    const usersPrevious = previousRow ? previousRow.metricValues[keyColumnIndex].value : 0;
    othersCurrent -= usersCurrent;
    othersPrevious -= usersPrevious;
    const percent = totalCurrent > 0 ? usersCurrent / totalCurrent : 0;
    const rowData = [row.dimensionValues[0].value, percent];
    if (withTooltips) {
      const previousDateRangeRow = rows.find(({
        dimensionValues
      }) => dimensionValues[1].value === 'date_range_1' && dimensionValues[0].value === row.dimensionValues[0].value);
      rowData.push(tooltipCallback(row, previousDateRangeRow, rowData));
    }
    dataMap.push(rowData);
  }
  if (hasOthers && othersCurrent > 0) {
    const rowData = [(0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Others', 'google-site-kit'), othersCurrent / totalCurrent];
    if (withTooltips) {
      rowData.push(tooltipCallback({
        metricValues: [{
          value: othersCurrent
        }]
      }, {
        metricValues: [{
          value: othersPrevious
        }]
      }, rowData));
    }
    dataMap.push(rowData);
  }
  return dataMap;
}

/**
 * Checks if there is a single row of data or one row of the provided GA4 report is contributing 100% of the total for a given dimension.
 *
 * Note that chart reports will be in the multi-date range format.
 *
 * @since 1.96.0
 *
 * @param {Object} report The report data object.
 * @return {(boolean|undefined)} Returns undefined if report is undefined, true/false for the above conditions.
 */
function isSingleSlice(report) {
  if (report === undefined) {
    return undefined;
  }
  const currentDateRangeRows = (report?.rows || []).filter(({
    dimensionValues
  }) => dimensionValues[1].value === 'date_range_0');
  if (currentDateRangeRows?.length === 1 || currentDateRangeRows?.[0]?.metricValues?.[0]?.value === report?.totals?.[0]?.metricValues?.[0]?.value) {
    return true;
  }
  return false;
}

/***/ }),

/***/ "./js/modules/analytics-4/utils/countries-data.js":
/*!********************************************************!*\
  !*** ./js/modules/analytics-4/utils/countries-data.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   countries: () => (/* binding */ countries)
/* harmony export */ });
/* eslint-disable sitekit/acronym-case */
const countries = {
  default: {
    defaultCountryCode: 'US',
    country: [{
      countryCode: 'AF',
      displayName: 'Afghanistan',
      defaultTimeZoneId: 'Asia/Kabul',
      timeZone: [{
        timeZoneId: 'Asia/Kabul',
        displayName: '(GMT+04:30) Afghanistan Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'AL',
      displayName: 'Albania',
      defaultTimeZoneId: 'Europe/Tirane',
      timeZone: [{
        timeZoneId: 'Europe/Tirane',
        displayName: '(GMT+02:00) Albania Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'DZ',
      displayName: 'Algeria',
      defaultTimeZoneId: 'Africa/Algiers',
      timeZone: [{
        timeZoneId: 'Africa/Algiers',
        displayName: '(GMT+01:00) Algeria Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'AS',
      displayName: 'American Samoa',
      defaultTimeZoneId: 'Pacific/Pago_Pago',
      timeZone: [{
        timeZoneId: 'Pacific/Pago_Pago',
        displayName: '(GMT-11:00) American Samoa Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'AD',
      displayName: 'Andorra',
      defaultTimeZoneId: 'Europe/Andorra',
      timeZone: [{
        timeZoneId: 'Europe/Andorra',
        displayName: '(GMT+02:00) Andorra Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'AQ',
      displayName: 'Antarctica',
      defaultTimeZoneId: 'Antarctica/Palmer',
      timeZone: [{
        timeZoneId: 'Antarctica/Palmer',
        displayName: '(GMT-03:00) Palmer Time'
      }, {
        timeZoneId: 'Antarctica/Rothera',
        displayName: '(GMT-03:00) Rothera Time'
      }, {
        timeZoneId: 'Antarctica/Syowa',
        displayName: '(GMT+03:00) Syowa Time'
      }, {
        timeZoneId: 'Antarctica/Mawson',
        displayName: '(GMT+05:00) Mawson Time'
      }, {
        timeZoneId: 'Antarctica/Vostok',
        displayName: '(GMT+06:00) Vostok Time'
      }, {
        timeZoneId: 'Antarctica/Davis',
        displayName: '(GMT+07:00) Davis Time'
      }, {
        timeZoneId: 'Antarctica/Casey',
        displayName: '(GMT+08:00) Casey Time'
      }, {
        timeZoneId: 'Antarctica/DumontDUrville',
        displayName: '(GMT+10:00) Dumont d\u2019Urville Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'AR',
      displayName: 'Argentina',
      defaultTimeZoneId: 'America/Buenos_Aires',
      timeZone: [{
        timeZoneId: 'America/Buenos_Aires',
        displayName: '(GMT-03:00) Buenos Aires Time'
      }, {
        timeZoneId: 'America/Cordoba',
        displayName: '(GMT-03:00) Cordoba Time'
      }],
      tosLocale: {
        language: 'es',
        country: 'ES'
      }
    }, {
      countryCode: 'AM',
      displayName: 'Armenia',
      defaultTimeZoneId: 'Asia/Yerevan',
      timeZone: [{
        timeZoneId: 'Asia/Yerevan',
        displayName: '(GMT+04:00) Armenia Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'AU',
      displayName: 'Australia',
      defaultTimeZoneId: 'Australia/Perth',
      timeZone: [{
        timeZoneId: 'Australia/Perth',
        displayName: '(GMT+08:00) Perth Time'
      }, {
        timeZoneId: 'Australia/Adelaide',
        displayName: '(GMT+09:30) Adelaide Time'
      }, {
        timeZoneId: 'Australia/Darwin',
        displayName: '(GMT+09:30) Darwin Time'
      }, {
        timeZoneId: 'Australia/Brisbane',
        displayName: '(GMT+10:00) Brisbane Time'
      }, {
        timeZoneId: 'Australia/Hobart',
        displayName: '(GMT+10:00) Hobart Time'
      }, {
        timeZoneId: 'Australia/Melbourne',
        displayName: '(GMT+10:00) Melbourne Time'
      }, {
        timeZoneId: 'Australia/Sydney',
        displayName: '(GMT+10:00) Sydney Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'AT',
      displayName: 'Austria',
      defaultTimeZoneId: 'Europe/Vienna',
      timeZone: [{
        timeZoneId: 'Europe/Vienna',
        displayName: '(GMT+02:00) Austria Time'
      }],
      tosLocale: {
        language: 'de',
        country: 'DE'
      }
    }, {
      countryCode: 'AZ',
      displayName: 'Azerbaijan',
      defaultTimeZoneId: 'Asia/Baku',
      timeZone: [{
        timeZoneId: 'Asia/Baku',
        displayName: '(GMT+04:00) Azerbaijan Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'BS',
      displayName: 'Bahamas',
      defaultTimeZoneId: 'America/Nassau',
      timeZone: [{
        timeZoneId: 'America/Nassau',
        displayName: '(GMT-04:00) Bahamas Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'BD',
      displayName: 'Bangladesh',
      defaultTimeZoneId: 'Asia/Dhaka',
      timeZone: [{
        timeZoneId: 'Asia/Dhaka',
        displayName: '(GMT+06:00) Bangladesh Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'BB',
      displayName: 'Barbados',
      defaultTimeZoneId: 'America/Barbados',
      timeZone: [{
        timeZoneId: 'America/Barbados',
        displayName: '(GMT-04:00) Barbados Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'BY',
      displayName: 'Belarus',
      defaultTimeZoneId: 'Europe/Minsk',
      timeZone: [{
        timeZoneId: 'Europe/Minsk',
        displayName: '(GMT+03:00) Belarus Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'BE',
      displayName: 'Belgium',
      defaultTimeZoneId: 'Europe/Brussels',
      timeZone: [{
        timeZoneId: 'Europe/Brussels',
        displayName: '(GMT+02:00) Belgium Time'
      }],
      tosLocale: {
        language: 'fr',
        country: 'FR'
      }
    }, {
      countryCode: 'BZ',
      displayName: 'Belize',
      defaultTimeZoneId: 'America/Belize',
      timeZone: [{
        timeZoneId: 'America/Belize',
        displayName: '(GMT-06:00) Belize Time'
      }],
      tosLocale: {
        language: 'es',
        country: 'ES'
      }
    }, {
      countryCode: 'BM',
      displayName: 'Bermuda',
      defaultTimeZoneId: 'Atlantic/Bermuda',
      timeZone: [{
        timeZoneId: 'Atlantic/Bermuda',
        displayName: '(GMT-03:00) Bermuda Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'BT',
      displayName: 'Bhutan',
      defaultTimeZoneId: 'Asia/Thimphu',
      timeZone: [{
        timeZoneId: 'Asia/Thimphu',
        displayName: '(GMT+06:00) Bhutan Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'BO',
      displayName: 'Bolivia',
      defaultTimeZoneId: 'America/La_Paz',
      timeZone: [{
        timeZoneId: 'America/La_Paz',
        displayName: '(GMT-04:00) Bolivia Time'
      }],
      tosLocale: {
        language: 'es',
        country: 'ES'
      }
    }, {
      countryCode: 'BA',
      displayName: 'Bosnia \u0026 Herzegovina',
      defaultTimeZoneId: 'Europe/Sarajevo',
      timeZone: [{
        timeZoneId: 'Europe/Sarajevo',
        displayName: '(GMT+02:00) Bosnia \u0026 Herzegovina Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'BR',
      displayName: 'Brazil',
      defaultTimeZoneId: 'America/Rio_Branco',
      timeZone: [{
        timeZoneId: 'America/Rio_Branco',
        displayName: '(GMT-05:00) Rio Branco Time'
      }, {
        timeZoneId: 'America/Boa_Vista',
        displayName: '(GMT-04:00) Boa Vista Time'
      }, {
        timeZoneId: 'America/Campo_Grande',
        displayName: '(GMT-04:00) Campo Grande Time'
      }, {
        timeZoneId: 'America/Cuiaba',
        displayName: '(GMT-04:00) Cuiaba Time'
      }, {
        timeZoneId: 'America/Manaus',
        displayName: '(GMT-04:00) Manaus Time'
      }, {
        timeZoneId: 'America/Porto_Velho',
        displayName: '(GMT-04:00) Porto Velho Time'
      }, {
        timeZoneId: 'America/Araguaina',
        displayName: '(GMT-03:00) Araguaina Time'
      }, {
        timeZoneId: 'America/Bahia',
        displayName: '(GMT-03:00) Bahia Time'
      }, {
        timeZoneId: 'America/Belem',
        displayName: '(GMT-03:00) Belem Time'
      }, {
        timeZoneId: 'America/Fortaleza',
        displayName: '(GMT-03:00) Fortaleza Time'
      }, {
        timeZoneId: 'America/Maceio',
        displayName: '(GMT-03:00) Maceio Time'
      }, {
        timeZoneId: 'America/Recife',
        displayName: '(GMT-03:00) Recife Time'
      }, {
        timeZoneId: 'America/Sao_Paulo',
        displayName: '(GMT-03:00) Sao Paulo Time'
      }, {
        timeZoneId: 'America/Noronha',
        displayName: '(GMT-02:00) Noronha Time'
      }],
      tosLocale: {
        language: 'pt',
        country: 'BR'
      }
    }, {
      countryCode: 'IO',
      displayName: 'British Indian Ocean Territory',
      defaultTimeZoneId: 'Indian/Chagos',
      timeZone: [{
        timeZoneId: 'Indian/Chagos',
        displayName: '(GMT+06:00) British Indian Ocean Territory Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'BN',
      displayName: 'Brunei',
      defaultTimeZoneId: 'Asia/Brunei',
      timeZone: [{
        timeZoneId: 'Asia/Brunei',
        displayName: '(GMT+08:00) Brunei Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'BG',
      displayName: 'Bulgaria',
      defaultTimeZoneId: 'Europe/Sofia',
      timeZone: [{
        timeZoneId: 'Europe/Sofia',
        displayName: '(GMT+03:00) Bulgaria Time'
      }],
      tosLocale: {
        language: 'bg',
        country: 'BG'
      }
    }, {
      countryCode: 'CA',
      displayName: 'Canada',
      defaultTimeZoneId: 'America/Dawson',
      timeZone: [{
        timeZoneId: 'America/Dawson',
        displayName: '(GMT-07:00) Dawson Time'
      }, {
        timeZoneId: 'America/Vancouver',
        displayName: '(GMT-07:00) Vancouver Time'
      }, {
        timeZoneId: 'America/Whitehorse',
        displayName: '(GMT-07:00) Whitehorse Time'
      }, {
        timeZoneId: 'America/Edmonton',
        displayName: '(GMT-06:00) Edmonton Time'
      }, {
        timeZoneId: 'America/Yellowknife',
        displayName: '(GMT-06:00) Yellowknife Time'
      }, {
        timeZoneId: 'America/Dawson_Creek',
        displayName: '(GMT-07:00) Dawson Creek Time'
      }, {
        timeZoneId: 'America/Winnipeg',
        displayName: '(GMT-05:00) Winnipeg Time'
      }, {
        timeZoneId: 'America/Regina',
        displayName: '(GMT-06:00) Regina Time'
      }, {
        timeZoneId: 'America/Iqaluit',
        displayName: '(GMT-04:00) Iqaluit Time'
      }, {
        timeZoneId: 'America/Toronto',
        displayName: '(GMT-04:00) Toronto Time'
      }, {
        timeZoneId: 'America/Halifax',
        displayName: '(GMT-03:00) Halifax Time'
      }, {
        timeZoneId: 'America/St_Johns',
        displayName: '(GMT-02:30) St. John\u2019s Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'CV',
      displayName: 'Cape Verde',
      defaultTimeZoneId: 'Atlantic/Cape_Verde',
      timeZone: [{
        timeZoneId: 'Atlantic/Cape_Verde',
        displayName: '(GMT-01:00) Cape Verde Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'TD',
      displayName: 'Chad',
      defaultTimeZoneId: 'Africa/Ndjamena',
      timeZone: [{
        timeZoneId: 'Africa/Ndjamena',
        displayName: '(GMT+01:00) Chad Time'
      }],
      tosLocale: {
        language: 'fr',
        country: 'FR'
      }
    }, {
      countryCode: 'CL',
      displayName: 'Chile',
      defaultTimeZoneId: 'Pacific/Easter',
      timeZone: [{
        timeZoneId: 'Pacific/Easter',
        displayName: '(GMT-06:00) Easter Time'
      }, {
        timeZoneId: 'America/Santiago',
        displayName: '(GMT-04:00) Chile Time'
      }, {
        timeZoneId: 'America/Punta_Arenas',
        displayName: '(GMT-03:00) Punta Arenas Time'
      }],
      tosLocale: {
        language: 'es',
        country: 'ES'
      }
    }, {
      countryCode: 'CN',
      displayName: 'China',
      defaultTimeZoneId: 'Asia/Shanghai',
      timeZone: [{
        timeZoneId: 'Asia/Shanghai',
        displayName: '(GMT+08:00) China Time'
      }],
      tosLocale: {
        language: 'zh',
        country: 'CN'
      }
    }, {
      countryCode: 'CX',
      displayName: 'Christmas Island',
      defaultTimeZoneId: 'Indian/Christmas',
      timeZone: [{
        timeZoneId: 'Indian/Christmas',
        displayName: '(GMT+07:00) Christmas Island Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'CC',
      displayName: 'Cocos (Keeling) Islands',
      defaultTimeZoneId: 'Indian/Cocos',
      timeZone: [{
        timeZoneId: 'Indian/Cocos',
        displayName: '(GMT+06:30) Cocos (Keeling) Islands Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'CO',
      displayName: 'Colombia',
      defaultTimeZoneId: 'America/Bogota',
      timeZone: [{
        timeZoneId: 'America/Bogota',
        displayName: '(GMT-05:00) Colombia Time'
      }],
      tosLocale: {
        language: 'es',
        country: 'ES'
      }
    }, {
      countryCode: 'CK',
      displayName: 'Cook Islands',
      defaultTimeZoneId: 'Pacific/Rarotonga',
      timeZone: [{
        timeZoneId: 'Pacific/Rarotonga',
        displayName: '(GMT-10:00) Cook Islands Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'CR',
      displayName: 'Costa Rica',
      defaultTimeZoneId: 'America/Costa_Rica',
      timeZone: [{
        timeZoneId: 'America/Costa_Rica',
        displayName: '(GMT-06:00) Costa Rica Time'
      }],
      tosLocale: {
        language: 'es',
        country: 'ES'
      }
    }, {
      countryCode: 'CI',
      displayName: 'C\u00f4te d\u2019Ivoire',
      defaultTimeZoneId: 'Africa/Abidjan',
      timeZone: [{
        timeZoneId: 'Africa/Abidjan',
        displayName: '(GMT+00:00) C\u00f4te d\u2019Ivoire Time'
      }],
      tosLocale: {
        language: 'fr',
        country: 'FR'
      }
    }, {
      countryCode: 'HR',
      displayName: 'Croatia',
      defaultTimeZoneId: 'Europe/Zagreb',
      timeZone: [{
        timeZoneId: 'Europe/Zagreb',
        displayName: '(GMT+02:00) Croatia Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'CU',
      displayName: 'Cuba',
      defaultTimeZoneId: 'America/Havana',
      timeZone: [{
        timeZoneId: 'America/Havana',
        displayName: '(GMT-04:00) Cuba Time'
      }],
      tosLocale: {
        language: 'es',
        country: 'ES'
      }
    }, {
      countryCode: 'CW',
      displayName: 'Cura\u00e7ao',
      defaultTimeZoneId: 'America/Curacao',
      timeZone: [{
        timeZoneId: 'America/Curacao',
        displayName: '(GMT-04:00) Cura\u00e7ao Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'CY',
      displayName: 'Cyprus',
      defaultTimeZoneId: 'Asia/Nicosia',
      timeZone: [{
        timeZoneId: 'Asia/Nicosia',
        displayName: '(GMT+03:00) Nicosia Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'CZ',
      displayName: 'Czechia',
      defaultTimeZoneId: 'Europe/Prague',
      timeZone: [{
        timeZoneId: 'Europe/Prague',
        displayName: '(GMT+02:00) Czechia Time'
      }],
      tosLocale: {
        language: 'cs',
        country: 'CZ'
      }
    }, {
      countryCode: 'DK',
      displayName: 'Denmark',
      defaultTimeZoneId: 'Europe/Copenhagen',
      timeZone: [{
        timeZoneId: 'Europe/Copenhagen',
        displayName: '(GMT+02:00) Denmark Time'
      }],
      tosLocale: {
        language: 'da',
        country: 'DK'
      }
    }, {
      countryCode: 'DO',
      displayName: 'Dominican Republic',
      defaultTimeZoneId: 'America/Santo_Domingo',
      timeZone: [{
        timeZoneId: 'America/Santo_Domingo',
        displayName: '(GMT-04:00) Dominican Republic Time'
      }],
      tosLocale: {
        language: 'es',
        country: 'ES'
      }
    }, {
      countryCode: 'EC',
      displayName: 'Ecuador',
      defaultTimeZoneId: 'Pacific/Galapagos',
      timeZone: [{
        timeZoneId: 'Pacific/Galapagos',
        displayName: '(GMT-06:00) Galapagos Time'
      }, {
        timeZoneId: 'America/Guayaquil',
        displayName: '(GMT-05:00) Ecuador Time'
      }],
      tosLocale: {
        language: 'es',
        country: 'ES'
      }
    }, {
      countryCode: 'EG',
      displayName: 'Egypt',
      defaultTimeZoneId: 'Africa/Cairo',
      timeZone: [{
        timeZoneId: 'Africa/Cairo',
        displayName: '(GMT+02:00) Egypt Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'SV',
      displayName: 'El Salvador',
      defaultTimeZoneId: 'America/El_Salvador',
      timeZone: [{
        timeZoneId: 'America/El_Salvador',
        displayName: '(GMT-06:00) El Salvador Time'
      }],
      tosLocale: {
        language: 'es',
        country: 'ES'
      }
    }, {
      countryCode: 'EE',
      displayName: 'Estonia',
      defaultTimeZoneId: 'Europe/Tallinn',
      timeZone: [{
        timeZoneId: 'Europe/Tallinn',
        displayName: '(GMT+03:00) Estonia Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'FK',
      displayName: 'Falkland Islands (Islas Malvinas)',
      defaultTimeZoneId: 'Atlantic/Stanley',
      timeZone: [{
        timeZoneId: 'Atlantic/Stanley',
        displayName: '(GMT-03:00) Falkland Islands (Islas Malvinas) Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'FO',
      displayName: 'Faroe Islands',
      defaultTimeZoneId: 'Atlantic/Faeroe',
      timeZone: [{
        timeZoneId: 'Atlantic/Faeroe',
        displayName: '(GMT+01:00) Faroe Islands Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'FJ',
      displayName: 'Fiji',
      defaultTimeZoneId: 'Pacific/Fiji',
      timeZone: [{
        timeZoneId: 'Pacific/Fiji',
        displayName: '(GMT+12:00) Fiji Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'FI',
      displayName: 'Finland',
      defaultTimeZoneId: 'Europe/Helsinki',
      timeZone: [{
        timeZoneId: 'Europe/Helsinki',
        displayName: '(GMT+03:00) Finland Time'
      }],
      tosLocale: {
        language: 'fi',
        country: 'FI'
      }
    }, {
      countryCode: 'FR',
      displayName: 'France',
      defaultTimeZoneId: 'Europe/Paris',
      timeZone: [{
        timeZoneId: 'Europe/Paris',
        displayName: '(GMT+02:00) France Time'
      }],
      tosLocale: {
        language: 'fr',
        country: 'FR'
      }
    }, {
      countryCode: 'GF',
      displayName: 'French Guiana',
      defaultTimeZoneId: 'America/Cayenne',
      timeZone: [{
        timeZoneId: 'America/Cayenne',
        displayName: '(GMT-03:00) French Guiana Time'
      }],
      tosLocale: {
        language: 'fr',
        country: 'FR'
      }
    }, {
      countryCode: 'PF',
      displayName: 'French Polynesia',
      defaultTimeZoneId: 'Pacific/Tahiti',
      timeZone: [{
        timeZoneId: 'Pacific/Tahiti',
        displayName: '(GMT-10:00) Tahiti Time'
      }, {
        timeZoneId: 'Pacific/Marquesas',
        displayName: '(GMT-09:30) Marquesas Time'
      }, {
        timeZoneId: 'Pacific/Gambier',
        displayName: '(GMT-09:00) Gambier Time'
      }],
      tosLocale: {
        language: 'fr',
        country: 'FR'
      }
    }, {
      countryCode: 'TF',
      displayName: 'French Southern Territories',
      defaultTimeZoneId: 'Indian/Kerguelen',
      timeZone: [{
        timeZoneId: 'Indian/Kerguelen',
        displayName: '(GMT+05:00) French Southern Territories Time'
      }],
      tosLocale: {
        language: 'fr',
        country: 'FR'
      }
    }, {
      countryCode: 'GE',
      displayName: 'Georgia',
      defaultTimeZoneId: 'Asia/Tbilisi',
      timeZone: [{
        timeZoneId: 'Asia/Tbilisi',
        displayName: '(GMT+04:00) Georgia Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'DE',
      displayName: 'Germany',
      defaultTimeZoneId: 'Europe/Berlin',
      timeZone: [{
        timeZoneId: 'Europe/Berlin',
        displayName: '(GMT+02:00) Germany Time'
      }],
      tosLocale: {
        language: 'de',
        country: 'DE'
      }
    }, {
      countryCode: 'GH',
      displayName: 'Ghana',
      defaultTimeZoneId: 'Africa/Accra',
      timeZone: [{
        timeZoneId: 'Africa/Accra',
        displayName: '(GMT+00:00) Ghana Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'GI',
      displayName: 'Gibraltar',
      defaultTimeZoneId: 'Europe/Gibraltar',
      timeZone: [{
        timeZoneId: 'Europe/Gibraltar',
        displayName: '(GMT+02:00) Gibraltar Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'GR',
      displayName: 'Greece',
      defaultTimeZoneId: 'Europe/Athens',
      timeZone: [{
        timeZoneId: 'Europe/Athens',
        displayName: '(GMT+03:00) Greece Time'
      }],
      tosLocale: {
        language: 'el',
        country: 'GR'
      }
    }, {
      countryCode: 'GL',
      displayName: 'Greenland',
      defaultTimeZoneId: 'America/Thule',
      timeZone: [{
        timeZoneId: 'America/Thule',
        displayName: '(GMT-03:00) Thule Time'
      }, {
        timeZoneId: 'America/Godthab',
        displayName: '(GMT-02:00) Nuuk Time'
      }, {
        timeZoneId: 'America/Scoresbysund',
        displayName: '(GMT+00:00) Ittoqqortoormiit Time'
      }, {
        timeZoneId: 'America/Danmarkshavn',
        displayName: '(GMT+00:00) Danmarkshavn Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'GU',
      displayName: 'Guam',
      defaultTimeZoneId: 'Pacific/Guam',
      timeZone: [{
        timeZoneId: 'Pacific/Guam',
        displayName: '(GMT+10:00) Guam Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'GT',
      displayName: 'Guatemala',
      defaultTimeZoneId: 'America/Guatemala',
      timeZone: [{
        timeZoneId: 'America/Guatemala',
        displayName: '(GMT-06:00) Guatemala Time'
      }],
      tosLocale: {
        language: 'es',
        country: 'ES'
      }
    }, {
      countryCode: 'GW',
      displayName: 'Guinea-Bissau',
      defaultTimeZoneId: 'Africa/Bissau',
      timeZone: [{
        timeZoneId: 'Africa/Bissau',
        displayName: '(GMT+00:00) Guinea-Bissau Time'
      }],
      tosLocale: {
        language: 'fr',
        country: 'FR'
      }
    }, {
      countryCode: 'GY',
      displayName: 'Guyana',
      defaultTimeZoneId: 'America/Guyana',
      timeZone: [{
        timeZoneId: 'America/Guyana',
        displayName: '(GMT-04:00) Guyana Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'HT',
      displayName: 'Haiti',
      defaultTimeZoneId: 'America/Port-au-Prince',
      timeZone: [{
        timeZoneId: 'America/Port-au-Prince',
        displayName: '(GMT-04:00) Haiti Time'
      }],
      tosLocale: {
        language: 'es',
        country: 'ES'
      }
    }, {
      countryCode: 'HN',
      displayName: 'Honduras',
      defaultTimeZoneId: 'America/Tegucigalpa',
      timeZone: [{
        timeZoneId: 'America/Tegucigalpa',
        displayName: '(GMT-06:00) Honduras Time'
      }],
      tosLocale: {
        language: 'es',
        country: 'ES'
      }
    }, {
      countryCode: 'HK',
      displayName: 'Hong Kong',
      defaultTimeZoneId: 'Asia/Hong_Kong',
      timeZone: [{
        timeZoneId: 'Asia/Hong_Kong',
        displayName: '(GMT+08:00) Hong Kong Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'HU',
      displayName: 'Hungary',
      defaultTimeZoneId: 'Europe/Budapest',
      timeZone: [{
        timeZoneId: 'Europe/Budapest',
        displayName: '(GMT+02:00) Hungary Time'
      }],
      tosLocale: {
        language: 'hu',
        country: 'HU'
      }
    }, {
      countryCode: 'IS',
      displayName: 'Iceland',
      defaultTimeZoneId: 'Atlantic/Reykjavik',
      timeZone: [{
        timeZoneId: 'Atlantic/Reykjavik',
        displayName: '(GMT+00:00) Iceland Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'IN',
      displayName: 'India',
      defaultTimeZoneId: 'Asia/Calcutta',
      timeZone: [{
        timeZoneId: 'Asia/Calcutta',
        displayName: '(GMT+05:30) India Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'ID',
      displayName: 'Indonesia',
      defaultTimeZoneId: 'Asia/Jakarta',
      timeZone: [{
        timeZoneId: 'Asia/Jakarta',
        displayName: '(GMT+07:00) Jakarta Time'
      }, {
        timeZoneId: 'Asia/Makassar',
        displayName: '(GMT+08:00) Makassar Time'
      }, {
        timeZoneId: 'Asia/Jayapura',
        displayName: '(GMT+09:00) Jayapura Time'
      }],
      tosLocale: {
        language: 'in',
        country: 'ID'
      }
    }, {
      countryCode: 'IR',
      displayName: 'Iran',
      defaultTimeZoneId: 'Asia/Tehran',
      timeZone: [{
        timeZoneId: 'Asia/Tehran',
        displayName: '(GMT+04:30) Iran Time'
      }]
    }, {
      countryCode: 'IQ',
      displayName: 'Iraq',
      defaultTimeZoneId: 'Asia/Baghdad',
      timeZone: [{
        timeZoneId: 'Asia/Baghdad',
        displayName: '(GMT+03:00) Iraq Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'IE',
      displayName: 'Ireland',
      defaultTimeZoneId: 'Europe/Dublin',
      timeZone: [{
        timeZoneId: 'Europe/Dublin',
        displayName: '(GMT+01:00) Ireland Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'IL',
      displayName: 'Israel',
      defaultTimeZoneId: 'Asia/Jerusalem',
      timeZone: [{
        timeZoneId: 'Asia/Jerusalem',
        displayName: '(GMT+03:00) Israel Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'IT',
      displayName: 'Italy',
      defaultTimeZoneId: 'Europe/Rome',
      timeZone: [{
        timeZoneId: 'Europe/Rome',
        displayName: '(GMT+02:00) Italy Time'
      }],
      tosLocale: {
        language: 'it',
        country: 'IT'
      }
    }, {
      countryCode: 'JM',
      displayName: 'Jamaica',
      defaultTimeZoneId: 'America/Jamaica',
      timeZone: [{
        timeZoneId: 'America/Jamaica',
        displayName: '(GMT-05:00) Jamaica Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'JP',
      displayName: 'Japan',
      defaultTimeZoneId: 'Asia/Tokyo',
      timeZone: [{
        timeZoneId: 'Asia/Tokyo',
        displayName: '(GMT+09:00) Japan Time'
      }],
      tosLocale: {
        language: 'ja',
        country: 'JP'
      }
    }, {
      countryCode: 'JO',
      displayName: 'Jordan',
      defaultTimeZoneId: 'Asia/Amman',
      timeZone: [{
        timeZoneId: 'Asia/Amman',
        displayName: '(GMT+03:00) Jordan Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'KZ',
      displayName: 'Kazakhstan',
      defaultTimeZoneId: 'Asia/Aqtau',
      timeZone: [{
        timeZoneId: 'Asia/Aqtau',
        displayName: '(GMT+05:00) Aqtau Time'
      }, {
        timeZoneId: 'Asia/Aqtobe',
        displayName: '(GMT+05:00) Aqtobe Time'
      }, {
        timeZoneId: 'Asia/Almaty',
        displayName: '(GMT+06:00) Almaty Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'KE',
      displayName: 'Kenya',
      defaultTimeZoneId: 'Africa/Nairobi',
      timeZone: [{
        timeZoneId: 'Africa/Nairobi',
        displayName: '(GMT+03:00) Kenya Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'KI',
      displayName: 'Kiribati',
      defaultTimeZoneId: 'Pacific/Tarawa',
      timeZone: [{
        timeZoneId: 'Pacific/Tarawa',
        displayName: '(GMT+12:00) Tarawa Time'
      }, {
        timeZoneId: 'Pacific/Enderbury',
        displayName: '(GMT+13:00) Enderbury Time'
      }, {
        timeZoneId: 'Pacific/Kiritimati',
        displayName: '(GMT+14:00) Kiritimati Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'KG',
      displayName: 'Kyrgyzstan',
      defaultTimeZoneId: 'Asia/Bishkek',
      timeZone: [{
        timeZoneId: 'Asia/Bishkek',
        displayName: '(GMT+06:00) Kyrgyzstan Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'LV',
      displayName: 'Latvia',
      defaultTimeZoneId: 'Europe/Riga',
      timeZone: [{
        timeZoneId: 'Europe/Riga',
        displayName: '(GMT+03:00) Latvia Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'LB',
      displayName: 'Lebanon',
      defaultTimeZoneId: 'Asia/Beirut',
      timeZone: [{
        timeZoneId: 'Asia/Beirut',
        displayName: '(GMT+03:00) Lebanon Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'LR',
      displayName: 'Liberia',
      defaultTimeZoneId: 'Africa/Monrovia',
      timeZone: [{
        timeZoneId: 'Africa/Monrovia',
        displayName: '(GMT+00:00) Liberia Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'LY',
      displayName: 'Libya',
      defaultTimeZoneId: 'Africa/Tripoli',
      timeZone: [{
        timeZoneId: 'Africa/Tripoli',
        displayName: '(GMT+02:00) Libya Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'LT',
      displayName: 'Lithuania',
      defaultTimeZoneId: 'Europe/Vilnius',
      timeZone: [{
        timeZoneId: 'Europe/Vilnius',
        displayName: '(GMT+03:00) Lithuania Time'
      }],
      tosLocale: {
        language: 'lt',
        country: 'LT'
      }
    }, {
      countryCode: 'LU',
      displayName: 'Luxembourg',
      defaultTimeZoneId: 'Europe/Luxembourg',
      timeZone: [{
        timeZoneId: 'Europe/Luxembourg',
        displayName: '(GMT+02:00) Luxembourg Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'MO',
      displayName: 'Macao',
      defaultTimeZoneId: 'Asia/Macau',
      timeZone: [{
        timeZoneId: 'Asia/Macau',
        displayName: '(GMT+08:00) Macao Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'MY',
      displayName: 'Malaysia',
      defaultTimeZoneId: 'Asia/Kuala_Lumpur',
      timeZone: [{
        timeZoneId: 'Asia/Kuala_Lumpur',
        displayName: '(GMT+08:00) Malaysia Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'MV',
      displayName: 'Maldives',
      defaultTimeZoneId: 'Indian/Maldives',
      timeZone: [{
        timeZoneId: 'Indian/Maldives',
        displayName: '(GMT+05:00) Maldives Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'MT',
      displayName: 'Malta',
      defaultTimeZoneId: 'Europe/Malta',
      timeZone: [{
        timeZoneId: 'Europe/Malta',
        displayName: '(GMT+02:00) Malta Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'MH',
      displayName: 'Marshall Islands',
      defaultTimeZoneId: 'Pacific/Kwajalein',
      timeZone: [{
        timeZoneId: 'Pacific/Kwajalein',
        displayName: '(GMT+12:00) Kwajalein Time'
      }, {
        timeZoneId: 'Pacific/Majuro',
        displayName: '(GMT+12:00) Marshall Islands Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'MQ',
      displayName: 'Martinique',
      defaultTimeZoneId: 'America/Martinique',
      timeZone: [{
        timeZoneId: 'America/Martinique',
        displayName: '(GMT-04:00) Martinique Time'
      }],
      tosLocale: {
        language: 'fr',
        country: 'FR'
      }
    }, {
      countryCode: 'MU',
      displayName: 'Mauritius',
      defaultTimeZoneId: 'Indian/Mauritius',
      timeZone: [{
        timeZoneId: 'Indian/Mauritius',
        displayName: '(GMT+04:00) Mauritius Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'MX',
      displayName: 'Mexico',
      defaultTimeZoneId: 'America/Tijuana',
      timeZone: [{
        timeZoneId: 'America/Tijuana',
        displayName: '(GMT-07:00) Tijuana Time'
      }, {
        timeZoneId: 'America/Mazatlan',
        displayName: '(GMT-06:00) Mazatlan Time'
      }, {
        timeZoneId: 'America/Hermosillo',
        displayName: '(GMT-07:00) Hermosillo Time'
      }, {
        timeZoneId: 'America/Mexico_City',
        displayName: '(GMT-05:00) Mexico City Time'
      }, {
        timeZoneId: 'America/Cancun',
        displayName: '(GMT-05:00) Cancun Time'
      }],
      tosLocale: {
        language: 'es',
        country: 'ES'
      }
    }, {
      countryCode: 'FM',
      displayName: 'Micronesia',
      defaultTimeZoneId: 'Pacific/Truk',
      timeZone: [{
        timeZoneId: 'Pacific/Truk',
        displayName: '(GMT+10:00) Chuuk Time'
      }, {
        timeZoneId: 'Pacific/Kosrae',
        displayName: '(GMT+11:00) Kosrae Time'
      }, {
        timeZoneId: 'Pacific/Ponape',
        displayName: '(GMT+11:00) Pohnpei Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'MD',
      displayName: 'Moldova',
      defaultTimeZoneId: 'Europe/Chisinau',
      timeZone: [{
        timeZoneId: 'Europe/Chisinau',
        displayName: '(GMT+03:00) Moldova Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'MC',
      displayName: 'Monaco',
      defaultTimeZoneId: 'Europe/Monaco',
      timeZone: [{
        timeZoneId: 'Europe/Monaco',
        displayName: '(GMT+02:00) Monaco Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'MN',
      displayName: 'Mongolia',
      defaultTimeZoneId: 'Asia/Hovd',
      timeZone: [{
        timeZoneId: 'Asia/Hovd',
        displayName: '(GMT+07:00) Hovd Time'
      }, {
        timeZoneId: 'Asia/Choibalsan',
        displayName: '(GMT+08:00) Choibalsan Time'
      }, {
        timeZoneId: 'Asia/Ulaanbaatar',
        displayName: '(GMT+08:00) Ulaanbaatar Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'MA',
      displayName: 'Morocco',
      defaultTimeZoneId: 'Africa/Casablanca',
      timeZone: [{
        timeZoneId: 'Africa/Casablanca',
        displayName: '(GMT+01:00) Morocco Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'MZ',
      displayName: 'Mozambique',
      defaultTimeZoneId: 'Africa/Maputo',
      timeZone: [{
        timeZoneId: 'Africa/Maputo',
        displayName: '(GMT+02:00) Mozambique Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'MM',
      displayName: 'Myanmar (Burma)',
      defaultTimeZoneId: 'Asia/Rangoon',
      timeZone: [{
        timeZoneId: 'Asia/Rangoon',
        displayName: '(GMT+06:30) Myanmar (Burma) Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'NA',
      displayName: 'Namibia',
      defaultTimeZoneId: 'Africa/Windhoek',
      timeZone: [{
        timeZoneId: 'Africa/Windhoek',
        displayName: '(GMT+02:00) Namibia Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'NR',
      displayName: 'Nauru',
      defaultTimeZoneId: 'Pacific/Nauru',
      timeZone: [{
        timeZoneId: 'Pacific/Nauru',
        displayName: '(GMT+12:00) Nauru Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'NP',
      displayName: 'Nepal',
      defaultTimeZoneId: 'Asia/Katmandu',
      timeZone: [{
        timeZoneId: 'Asia/Katmandu',
        displayName: '(GMT+05:45) Nepal Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'NL',
      displayName: 'Netherlands',
      defaultTimeZoneId: 'Europe/Amsterdam',
      timeZone: [{
        timeZoneId: 'Europe/Amsterdam',
        displayName: '(GMT+02:00) Netherlands Time'
      }],
      tosLocale: {
        language: 'nl',
        country: 'NL'
      }
    }, {
      countryCode: 'NC',
      displayName: 'New Caledonia',
      defaultTimeZoneId: 'Pacific/Noumea',
      timeZone: [{
        timeZoneId: 'Pacific/Noumea',
        displayName: '(GMT+11:00) New Caledonia Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'NZ',
      displayName: 'New Zealand',
      defaultTimeZoneId: 'Pacific/Auckland',
      timeZone: [{
        timeZoneId: 'Pacific/Auckland',
        displayName: '(GMT+12:00) New Zealand Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'NI',
      displayName: 'Nicaragua',
      defaultTimeZoneId: 'America/Managua',
      timeZone: [{
        timeZoneId: 'America/Managua',
        displayName: '(GMT-06:00) Nicaragua Time'
      }],
      tosLocale: {
        language: 'es',
        country: 'ES'
      }
    }, {
      countryCode: 'NG',
      displayName: 'Nigeria',
      defaultTimeZoneId: 'Africa/Lagos',
      timeZone: [{
        timeZoneId: 'Africa/Lagos',
        displayName: '(GMT+01:00) Nigeria Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'NU',
      displayName: 'Niue',
      defaultTimeZoneId: 'Pacific/Niue',
      timeZone: [{
        timeZoneId: 'Pacific/Niue',
        displayName: '(GMT-11:00) Niue Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'NF',
      displayName: 'Norfolk Island',
      defaultTimeZoneId: 'Pacific/Norfolk',
      timeZone: [{
        timeZoneId: 'Pacific/Norfolk',
        displayName: '(GMT+11:00) Norfolk Island Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'KP',
      displayName: 'North Korea',
      defaultTimeZoneId: 'Asia/Pyongyang',
      timeZone: [{
        timeZoneId: 'Asia/Pyongyang',
        displayName: '(GMT+09:00) North Korea Time'
      }]
    }, {
      countryCode: 'MK',
      displayName: 'North Macedonia',
      defaultTimeZoneId: 'Europe/Skopje',
      timeZone: [{
        timeZoneId: 'Europe/Skopje',
        displayName: '(GMT+02:00) North Macedonia Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'NO',
      displayName: 'Norway',
      defaultTimeZoneId: 'Europe/Oslo',
      timeZone: [{
        timeZoneId: 'Europe/Oslo',
        displayName: '(GMT+02:00) Norway Time'
      }],
      tosLocale: {
        language: 'no',
        country: 'NO'
      }
    }, {
      countryCode: 'PK',
      displayName: 'Pakistan',
      defaultTimeZoneId: 'Asia/Karachi',
      timeZone: [{
        timeZoneId: 'Asia/Karachi',
        displayName: '(GMT+05:00) Pakistan Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'PW',
      displayName: 'Palau',
      defaultTimeZoneId: 'Pacific/Palau',
      timeZone: [{
        timeZoneId: 'Pacific/Palau',
        displayName: '(GMT+09:00) Palau Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'PS',
      displayName: 'Palestine',
      defaultTimeZoneId: 'Asia/Gaza',
      timeZone: [{
        timeZoneId: 'Asia/Gaza',
        displayName: '(GMT+03:00) Gaza Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'PA',
      displayName: 'Panama',
      defaultTimeZoneId: 'America/Panama',
      timeZone: [{
        timeZoneId: 'America/Panama',
        displayName: '(GMT-05:00) Panama Time'
      }],
      tosLocale: {
        language: 'es',
        country: 'ES'
      }
    }, {
      countryCode: 'PG',
      displayName: 'Papua New Guinea',
      defaultTimeZoneId: 'Pacific/Port_Moresby',
      timeZone: [{
        timeZoneId: 'Pacific/Port_Moresby',
        displayName: '(GMT+10:00) Port Moresby Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'PY',
      displayName: 'Paraguay',
      defaultTimeZoneId: 'America/Asuncion',
      timeZone: [{
        timeZoneId: 'America/Asuncion',
        displayName: '(GMT-04:00) Paraguay Time'
      }],
      tosLocale: {
        language: 'es',
        country: 'ES'
      }
    }, {
      countryCode: 'PE',
      displayName: 'Peru',
      defaultTimeZoneId: 'America/Lima',
      timeZone: [{
        timeZoneId: 'America/Lima',
        displayName: '(GMT-05:00) Peru Time'
      }],
      tosLocale: {
        language: 'es',
        country: 'ES'
      }
    }, {
      countryCode: 'PH',
      displayName: 'Philippines',
      defaultTimeZoneId: 'Asia/Manila',
      timeZone: [{
        timeZoneId: 'Asia/Manila',
        displayName: '(GMT+08:00) Philippines Time'
      }],
      tosLocale: {
        language: 'tl',
        country: 'PH'
      }
    }, {
      countryCode: 'PN',
      displayName: 'Pitcairn Islands',
      defaultTimeZoneId: 'Pacific/Pitcairn',
      timeZone: [{
        timeZoneId: 'Pacific/Pitcairn',
        displayName: '(GMT-08:00) Pitcairn Islands Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'PL',
      displayName: 'Poland',
      defaultTimeZoneId: 'Europe/Warsaw',
      timeZone: [{
        timeZoneId: 'Europe/Warsaw',
        displayName: '(GMT+02:00) Poland Time'
      }],
      tosLocale: {
        language: 'pl',
        country: 'PL'
      }
    }, {
      countryCode: 'PT',
      displayName: 'Portugal',
      defaultTimeZoneId: 'Atlantic/Azores',
      timeZone: [{
        timeZoneId: 'Atlantic/Azores',
        displayName: '(GMT+00:00) Azores Time'
      }, {
        timeZoneId: 'Europe/Lisbon',
        displayName: '(GMT+01:00) Portugal Time'
      }],
      tosLocale: {
        language: 'pt',
        country: 'PT'
      }
    }, {
      countryCode: 'PR',
      displayName: 'Puerto Rico',
      defaultTimeZoneId: 'America/Puerto_Rico',
      timeZone: [{
        timeZoneId: 'America/Puerto_Rico',
        displayName: '(GMT-04:00) Puerto Rico Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'QA',
      displayName: 'Qatar',
      defaultTimeZoneId: 'Asia/Qatar',
      timeZone: [{
        timeZoneId: 'Asia/Qatar',
        displayName: '(GMT+03:00) Qatar Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'RE',
      displayName: 'R\u00e9union',
      defaultTimeZoneId: 'Indian/Reunion',
      timeZone: [{
        timeZoneId: 'Indian/Reunion',
        displayName: '(GMT+04:00) R\u00e9union Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'RO',
      displayName: 'Romania',
      defaultTimeZoneId: 'Europe/Bucharest',
      timeZone: [{
        timeZoneId: 'Europe/Bucharest',
        displayName: '(GMT+03:00) Romania Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'RU',
      displayName: 'Russia',
      defaultTimeZoneId: 'Europe/Kaliningrad',
      timeZone: [{
        timeZoneId: 'Europe/Kaliningrad',
        displayName: '(GMT+02:00) Kaliningrad Time'
      }, {
        timeZoneId: 'Europe/Moscow',
        displayName: '(GMT+03:00) Moscow Time'
      }, {
        timeZoneId: 'Europe/Samara',
        displayName: '(GMT+04:00) Samara Time'
      }, {
        timeZoneId: 'Asia/Yekaterinburg',
        displayName: '(GMT+05:00) Yekaterinburg Time'
      }, {
        timeZoneId: 'Asia/Omsk',
        displayName: '(GMT+06:00) Omsk Time'
      }, {
        timeZoneId: 'Asia/Krasnoyarsk',
        displayName: '(GMT+07:00) Krasnoyarsk Time'
      }, {
        timeZoneId: 'Asia/Irkutsk',
        displayName: '(GMT+08:00) Irkutsk Time'
      }, {
        timeZoneId: 'Asia/Yakutsk',
        displayName: '(GMT+09:00) Yakutsk Time'
      }, {
        timeZoneId: 'Asia/Vladivostok',
        displayName: '(GMT+10:00) Vladivostok Time'
      }, {
        timeZoneId: 'Asia/Magadan',
        displayName: '(GMT+11:00) Magadan Time'
      }, {
        timeZoneId: 'Asia/Kamchatka',
        displayName: '(GMT+12:00) Kamchatka Time'
      }],
      tosLocale: {
        language: 'ru',
        country: 'RU'
      }
    }, {
      countryCode: 'WS',
      displayName: 'Samoa',
      defaultTimeZoneId: 'Pacific/Apia',
      timeZone: [{
        timeZoneId: 'Pacific/Apia',
        displayName: '(GMT+13:00) Samoa Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'SM',
      displayName: 'San Marino',
      defaultTimeZoneId: 'Europe/San_Marino',
      timeZone: [{
        timeZoneId: 'Europe/San_Marino',
        displayName: '(GMT+02:00) San Marino Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'ST',
      displayName: 'S\u00e3o Tom\u00e9 \u0026 Pr\u00edncipe',
      defaultTimeZoneId: 'Africa/Sao_Tome',
      timeZone: [{
        timeZoneId: 'Africa/Sao_Tome',
        displayName: '(GMT+00:00) S\u00e3o Tom\u00e9 \u0026 Pr\u00edncipe Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'SA',
      displayName: 'Saudi Arabia',
      defaultTimeZoneId: 'Asia/Riyadh',
      timeZone: [{
        timeZoneId: 'Asia/Riyadh',
        displayName: '(GMT+03:00) Saudi Arabia Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'RS',
      displayName: 'Serbia',
      defaultTimeZoneId: 'Europe/Belgrade',
      timeZone: [{
        timeZoneId: 'Europe/Belgrade',
        displayName: '(GMT+02:00) Serbia Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'SC',
      displayName: 'Seychelles',
      defaultTimeZoneId: 'Indian/Mahe',
      timeZone: [{
        timeZoneId: 'Indian/Mahe',
        displayName: '(GMT+04:00) Seychelles Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'SG',
      displayName: 'Singapore',
      defaultTimeZoneId: 'Asia/Singapore',
      timeZone: [{
        timeZoneId: 'Asia/Singapore',
        displayName: '(GMT+08:00) Singapore Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'SK',
      displayName: 'Slovakia',
      defaultTimeZoneId: 'Europe/Bratislava',
      timeZone: [{
        timeZoneId: 'Europe/Bratislava',
        displayName: '(GMT+02:00) Slovakia Time'
      }],
      tosLocale: {
        language: 'sk',
        country: 'SK'
      }
    }, {
      countryCode: 'SI',
      displayName: 'Slovenia',
      defaultTimeZoneId: 'Europe/Ljubljana',
      timeZone: [{
        timeZoneId: 'Europe/Ljubljana',
        displayName: '(GMT+02:00) Slovenia Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'SB',
      displayName: 'Solomon Islands',
      defaultTimeZoneId: 'Pacific/Guadalcanal',
      timeZone: [{
        timeZoneId: 'Pacific/Guadalcanal',
        displayName: '(GMT+11:00) Solomon Islands Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'ZA',
      displayName: 'South Africa',
      defaultTimeZoneId: 'Africa/Johannesburg',
      timeZone: [{
        timeZoneId: 'Africa/Johannesburg',
        displayName: '(GMT+02:00) South Africa Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'GS',
      displayName: 'South Georgia \u0026 South Sandwich Islands',
      defaultTimeZoneId: 'Atlantic/South_Georgia',
      timeZone: [{
        timeZoneId: 'Atlantic/South_Georgia',
        displayName: '(GMT-02:00) South Georgia \u0026 South Sandwich Islands Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'KR',
      displayName: 'South Korea',
      defaultTimeZoneId: 'Asia/Seoul',
      timeZone: [{
        timeZoneId: 'Asia/Seoul',
        displayName: '(GMT+09:00) South Korea Time'
      }],
      tosLocale: {
        language: 'ko',
        country: 'KR'
      }
    }, {
      countryCode: 'ES',
      displayName: 'Spain',
      defaultTimeZoneId: 'Atlantic/Canary',
      timeZone: [{
        timeZoneId: 'Atlantic/Canary',
        displayName: '(GMT+01:00) Canary Time'
      }, {
        timeZoneId: 'Africa/Ceuta',
        displayName: '(GMT+02:00) Ceuta Time'
      }, {
        timeZoneId: 'Europe/Madrid',
        displayName: '(GMT+02:00) Spain Time'
      }],
      tosLocale: {
        language: 'es',
        country: 'ES'
      }
    }, {
      countryCode: 'LK',
      displayName: 'Sri Lanka',
      defaultTimeZoneId: 'Asia/Colombo',
      timeZone: [{
        timeZoneId: 'Asia/Colombo',
        displayName: '(GMT+05:30) Sri Lanka Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'PM',
      displayName: 'St. Pierre \u0026 Miquelon',
      defaultTimeZoneId: 'America/Miquelon',
      timeZone: [{
        timeZoneId: 'America/Miquelon',
        displayName: '(GMT-02:00) St. Pierre \u0026 Miquelon Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'SD',
      displayName: 'Sudan',
      defaultTimeZoneId: 'Africa/Khartoum',
      timeZone: [{
        timeZoneId: 'Africa/Khartoum',
        displayName: '(GMT+02:00) Sudan Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'SR',
      displayName: 'Suriname',
      defaultTimeZoneId: 'America/Paramaribo',
      timeZone: [{
        timeZoneId: 'America/Paramaribo',
        displayName: '(GMT-03:00) Suriname Time'
      }],
      tosLocale: {
        language: 'nl',
        country: 'NL'
      }
    }, {
      countryCode: 'SJ',
      displayName: 'Svalbard \u0026 Jan Mayen',
      defaultTimeZoneId: 'Arctic/Longyearbyen',
      timeZone: [{
        timeZoneId: 'Arctic/Longyearbyen',
        displayName: '(GMT+02:00) Svalbard \u0026 Jan Mayen Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'SE',
      displayName: 'Sweden',
      defaultTimeZoneId: 'Europe/Stockholm',
      timeZone: [{
        timeZoneId: 'Europe/Stockholm',
        displayName: '(GMT+02:00) Sweden Time'
      }],
      tosLocale: {
        language: 'sv',
        country: 'SE'
      }
    }, {
      countryCode: 'CH',
      displayName: 'Switzerland',
      defaultTimeZoneId: 'Europe/Zurich',
      timeZone: [{
        timeZoneId: 'Europe/Zurich',
        displayName: '(GMT+02:00) Switzerland Time'
      }],
      tosLocale: {
        language: 'de',
        country: 'DE'
      }
    }, {
      countryCode: 'SY',
      displayName: 'Syria',
      defaultTimeZoneId: 'Asia/Damascus',
      timeZone: [{
        timeZoneId: 'Asia/Damascus',
        displayName: '(GMT+03:00) Syria Time'
      }]
    }, {
      countryCode: 'TW',
      displayName: 'Taiwan',
      defaultTimeZoneId: 'Asia/Taipei',
      timeZone: [{
        timeZoneId: 'Asia/Taipei',
        displayName: '(GMT+08:00) Taiwan Time'
      }],
      tosLocale: {
        language: 'zh',
        country: 'TW'
      }
    }, {
      countryCode: 'TJ',
      displayName: 'Tajikistan',
      defaultTimeZoneId: 'Asia/Dushanbe',
      timeZone: [{
        timeZoneId: 'Asia/Dushanbe',
        displayName: '(GMT+05:00) Tajikistan Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'TH',
      displayName: 'Thailand',
      defaultTimeZoneId: 'Asia/Bangkok',
      timeZone: [{
        timeZoneId: 'Asia/Bangkok',
        displayName: '(GMT+07:00) Thailand Time'
      }],
      tosLocale: {
        language: 'th',
        country: 'TH'
      }
    }, {
      countryCode: 'TL',
      displayName: 'Timor-Leste',
      defaultTimeZoneId: 'Asia/Dili',
      timeZone: [{
        timeZoneId: 'Asia/Dili',
        displayName: '(GMT+09:00) Timor-Leste Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'TK',
      displayName: 'Tokelau',
      defaultTimeZoneId: 'Pacific/Fakaofo',
      timeZone: [{
        timeZoneId: 'Pacific/Fakaofo',
        displayName: '(GMT+13:00) Tokelau Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'TO',
      displayName: 'Tonga',
      defaultTimeZoneId: 'Pacific/Tongatapu',
      timeZone: [{
        timeZoneId: 'Pacific/Tongatapu',
        displayName: '(GMT+13:00) Tonga Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'TT',
      displayName: 'Trinidad \u0026 Tobago',
      defaultTimeZoneId: 'America/Port_of_Spain',
      timeZone: [{
        timeZoneId: 'America/Port_of_Spain',
        displayName: '(GMT-04:00) Trinidad \u0026 Tobago Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'TN',
      displayName: 'Tunisia',
      defaultTimeZoneId: 'Africa/Tunis',
      timeZone: [{
        timeZoneId: 'Africa/Tunis',
        displayName: '(GMT+01:00) Tunisia Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'TR',
      displayName: 'Turkey',
      defaultTimeZoneId: 'Europe/Istanbul',
      timeZone: [{
        timeZoneId: 'Europe/Istanbul',
        displayName: '(GMT+03:00) Turkey Time'
      }],
      tosLocale: {
        language: 'tr',
        country: 'TR'
      }
    }, {
      countryCode: 'TM',
      displayName: 'Turkmenistan',
      defaultTimeZoneId: 'Asia/Ashgabat',
      timeZone: [{
        timeZoneId: 'Asia/Ashgabat',
        displayName: '(GMT+05:00) Turkmenistan Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'TC',
      displayName: 'Turks \u0026 Caicos Islands',
      defaultTimeZoneId: 'America/Grand_Turk',
      timeZone: [{
        timeZoneId: 'America/Grand_Turk',
        displayName: '(GMT-04:00) Turks \u0026 Caicos Islands Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'TV',
      displayName: 'Tuvalu',
      defaultTimeZoneId: 'Pacific/Funafuti',
      timeZone: [{
        timeZoneId: 'Pacific/Funafuti',
        displayName: '(GMT+12:00) Tuvalu Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'UM',
      displayName: 'U.S. Outlying Islands',
      defaultTimeZoneId: 'Pacific/Wake',
      timeZone: [{
        timeZoneId: 'Pacific/Wake',
        displayName: '(GMT+12:00) Wake Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'UA',
      displayName: 'Ukraine',
      defaultTimeZoneId: 'Europe/Kiev',
      timeZone: [{
        timeZoneId: 'Europe/Kiev',
        displayName: '(GMT+03:00) Ukraine Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'AE',
      displayName: 'United Arab Emirates',
      defaultTimeZoneId: 'Asia/Dubai',
      timeZone: [{
        timeZoneId: 'Asia/Dubai',
        displayName: '(GMT+04:00) United Arab Emirates Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'GB',
      displayName: 'United Kingdom',
      defaultTimeZoneId: 'Etc/GMT',
      timeZone: [{
        timeZoneId: 'Etc/GMT',
        displayName: '(GMT+00:00) GMT'
      }, {
        timeZoneId: 'Europe/London',
        displayName: '(GMT+01:00) United Kingdom Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'US',
      displayName: 'United States',
      defaultTimeZoneId: 'America/Los_Angeles',
      timeZone: [{
        timeZoneId: 'Pacific/Honolulu',
        displayName: '(GMT-10:00) Honolulu Time'
      }, {
        timeZoneId: 'America/Anchorage',
        displayName: '(GMT-08:00) Anchorage Time'
      }, {
        timeZoneId: 'America/Los_Angeles',
        displayName: '(GMT-07:00) Los Angeles Time'
      }, {
        timeZoneId: 'America/Boise',
        displayName: '(GMT-06:00) Boise Time'
      }, {
        timeZoneId: 'America/Denver',
        displayName: '(GMT-06:00) Denver Time'
      }, {
        timeZoneId: 'America/Phoenix',
        displayName: '(GMT-07:00) Phoenix Time'
      }, {
        timeZoneId: 'America/Chicago',
        displayName: '(GMT-05:00) Chicago Time'
      }, {
        timeZoneId: 'America/Detroit',
        displayName: '(GMT-04:00) Detroit Time'
      }, {
        timeZoneId: 'America/New_York',
        displayName: '(GMT-04:00) New York Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'UY',
      displayName: 'Uruguay',
      defaultTimeZoneId: 'America/Montevideo',
      timeZone: [{
        timeZoneId: 'America/Montevideo',
        displayName: '(GMT-03:00) Uruguay Time'
      }],
      tosLocale: {
        language: 'es',
        country: 'ES'
      }
    }, {
      countryCode: 'UZ',
      displayName: 'Uzbekistan',
      defaultTimeZoneId: 'Asia/Tashkent',
      timeZone: [{
        timeZoneId: 'Asia/Tashkent',
        displayName: '(GMT+05:00) Uzbekistan Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'VU',
      displayName: 'Vanuatu',
      defaultTimeZoneId: 'Pacific/Efate',
      timeZone: [{
        timeZoneId: 'Pacific/Efate',
        displayName: '(GMT+11:00) Vanuatu Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'US'
      }
    }, {
      countryCode: 'VA',
      displayName: 'Vatican City',
      defaultTimeZoneId: 'Europe/Vatican',
      timeZone: [{
        timeZoneId: 'Europe/Vatican',
        displayName: '(GMT+02:00) Vatican City Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'VE',
      displayName: 'Venezuela',
      defaultTimeZoneId: 'America/Caracas',
      timeZone: [{
        timeZoneId: 'America/Caracas',
        displayName: '(GMT-04:00) Venezuela Time'
      }],
      tosLocale: {
        language: 'es',
        country: 'ES'
      }
    }, {
      countryCode: 'VN',
      displayName: 'Vietnam',
      defaultTimeZoneId: 'Asia/Saigon',
      timeZone: [{
        timeZoneId: 'Asia/Saigon',
        displayName: '(GMT+07:00) Vietnam Time'
      }],
      tosLocale: {
        language: 'vi',
        country: 'VN'
      }
    }, {
      countryCode: 'WF',
      displayName: 'Wallis \u0026 Futuna',
      defaultTimeZoneId: 'Pacific/Wallis',
      timeZone: [{
        timeZoneId: 'Pacific/Wallis',
        displayName: '(GMT+12:00) Wallis \u0026 Futuna Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }, {
      countryCode: 'EH',
      displayName: 'Western Sahara',
      defaultTimeZoneId: 'Africa/El_Aaiun',
      timeZone: [{
        timeZoneId: 'Africa/El_Aaiun',
        displayName: '(GMT+01:00) Western Sahara Time'
      }],
      tosLocale: {
        language: 'en',
        country: 'GB'
      }
    }]
  }
};

/***/ }),

/***/ "./js/modules/analytics-4/utils/countries-timezones.js":
/*!*************************************************************!*\
  !*** ./js/modules/analytics-4/utils/countries-timezones.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   allCountries: () => (/* binding */ allCountries),
/* harmony export */   countriesByCode: () => (/* binding */ countriesByCode),
/* harmony export */   countryCodesByTimezone: () => (/* binding */ countryCodesByTimezone),
/* harmony export */   timeZonesByCountryCode: () => (/* binding */ timeZonesByCountryCode)
/* harmony export */ });
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _countries_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./countries-data */ "./js/modules/analytics-4/utils/countries-data.js");
/**
 * Country and Time Zone utilities.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */

const allCountries = _countries_data__WEBPACK_IMPORTED_MODULE_1__.countries.default.country;
const timeZonesByCountryCode = allCountries.reduce((map, country) => {
  map[country.countryCode] = country.timeZone;
  return map;
}, {});
const countriesByCode = (0,lodash__WEBPACK_IMPORTED_MODULE_0__.keyBy)(allCountries, 'countryCode');
const countryCodesByTimezone = allCountries.reduce((map, country) => {
  country.timeZone.forEach(
  // eslint-disable-next-line sitekit/acronym-case
  ({
    timeZoneId
  }) => map[timeZoneId] = country.countryCode);
  return map;
}, {});

/***/ }),

/***/ "./js/modules/analytics-4/utils/custom-dimensions.js":
/*!***********************************************************!*\
  !*** ./js/modules/analytics-4/utils/custom-dimensions.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   isInvalidCustomDimensionError: () => (/* binding */ isInvalidCustomDimensionError),
/* harmony export */   provideCustomDimensionError: () => (/* binding */ provideCustomDimensionError)
/* harmony export */ });
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/**
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */


/**
 * Provides custom dimension error data to the given registry.
 *
 * @since 1.113.0
 *
 * @param {Object} registry                The registry to set up.
 * @param {Object} options                 Error options.
 * @param {string} options.customDimension The custom dimension slug.
 * @param {Object} options.error           The error object.
 */
function provideCustomDimensionError(registry, {
  customDimension,
  error
}) {
  const propertyID = registry.select(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_0__.MODULES_ANALYTICS_4).getPropertyID();
  const options = [propertyID, _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_0__.CUSTOM_DIMENSION_DEFINITIONS[customDimension]];
  registry.dispatch(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_0__.MODULES_ANALYTICS_4).receiveError(error, 'createCustomDimension', options);
}

/**
 * Checks whether the given error is an invalid custom dimension error.
 *
 * @since 1.113.0
 *
 * @param {Object} error Error object instance.
 * @return {boolean} `true` if it is an invalid custom dimension error, otherwise `false`.
 */
function isInvalidCustomDimensionError(error) {
  return error?.code === 400 && error?.message?.includes('is not a valid dimension');
}

/***/ }),

/***/ "./js/modules/analytics-4/utils/extract-dashboard-data.js":
/*!****************************************************************!*\
  !*** ./js/modules/analytics-4/utils/extract-dashboard-data.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   extractAnalytics4DashboardData: () => (/* binding */ extractAnalytics4DashboardData)
/* harmony export */ });
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! classnames */ "../node_modules/classnames/index.js");
/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _js_util_i18n__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/util/i18n */ "./js/util/i18n.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _partition_report__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./partition-report */ "./js/modules/analytics-4/utils/partition-report.js");
/* harmony import */ var _parseDimensionStringToDate__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./parseDimensionStringToDate */ "./js/modules/analytics-4/utils/parseDimensionStringToDate.js");
/**
 * Analytics-4 Dashboard data extraction functions.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */





/**
 * Reduces and processes an array of analytics-4 row data.
 *
 * @since 1.96.0
 *
 * @param {Array}  rows          An array of rows to reduce.
 * @param {number} selectedStats The currently selected stat we need to return data for.
 * @return {Array} Array of selected stats from analytics row data.
 */
function reduceAnalytics4RowsData(rows, selectedStats) {
  const dataMap = [];
  rows.forEach(row => {
    if (!row.metricValues) {
      return;
    }
    const {
      value
    } = row.metricValues[selectedStats];
    const dateString = row.dimensionValues[0].value;
    const date = (0,_parseDimensionStringToDate__WEBPACK_IMPORTED_MODULE_6__["default"])(dateString);
    dataMap.push([date, value]);
  });
  return dataMap;
}

/**
 * Extracts the data required from an analytics 'site-analytics' request.
 *
 * @since 1.96.0
 * @since 1.98.0 Added chartDataFormats parameter.
 *
 * @param {Object} report             The data returned from the Analytics API call.
 * @param {Array}  selectedStats      The currently selected stat we need to return data for.
 * @param {number} days               The number of days to extract data for. Pads empty data days.
 * @param {string} referenceDate      The reference date.
 * @param {Array}  dataLabels         The labels to be displayed.
 * @param {Array}  tooltipDataFormats The formats to be used for the tooltip data.
 * @param {Array}  chartDataFormats   The formats to be used for the chart data.
 * @return {Array} The dataMap ready for charting.
 */
function extractAnalytics4DashboardData(report, selectedStats, days, referenceDate, dataLabels = [(0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Users', 'google-site-kit'), (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Sessions', 'google-site-kit'), (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Engagement Rate', 'google-site-kit'), (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Session Duration', 'google-site-kit')], tooltipDataFormats = [x => parseFloat(x).toLocaleString(), x => parseFloat(x).toLocaleString(), x => (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.numFmt)(x / 100, {
  style: 'percent',
  signDisplay: 'never',
  maximumFractionDigits: 2
}), x => (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.numFmt)(x, 's')], chartDataFormats = [lodash__WEBPACK_IMPORTED_MODULE_1__.identity, lodash__WEBPACK_IMPORTED_MODULE_1__.identity, x => x * 100, lodash__WEBPACK_IMPORTED_MODULE_1__.identity]) {
  const rows = [...(report?.rows || [])]; // Copying it to escape side effects by manipulating with rows.
  const rowLength = rows.length;

  // Pad rows to 2 x number of days data points to accommodate new accounts.
  if (days * 2 > rowLength) {
    const date = (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.stringToDate)(referenceDate);
    for (let i = 0; days > i; i++) {
      const month = (date.getMonth() + 1).toString();
      const day = date.getDate().toString();
      const dateString = date.getFullYear().toString() + (2 > month.length ? '0' : '') + month + (2 > day.length ? '0' : '') + day;
      if (i > rowLength) {
        const emptyDay = [{
          dimensionValues: [{
            value: dateString
          }, {
            value: 'date_range_0'
          }],
          metricValues: [{
            value: 0
          }, {
            value: 0
          }]
        }, {
          dimensionValues: [{
            value: dateString
          }, {
            value: 'date_range_1'
          }],
          metricValues: [{
            value: 0
          }, {
            value: 0
          }]
        }];
        rows.unshift(...emptyDay);
      }
      date.setDate(date.getDate() - 1);
    }
    rows.push({
      dimensionValues: [{
        value: '0'
      }, {
        value: 'date_range_0'
      }]
    }, {
      dimensionValues: [{
        value: '0'
      }, {
        value: 'date_range_1'
      }]
    });
  }
  const isSessionDuration = dataLabels[selectedStats] === (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Session Duration', 'google-site-kit');
  const dataType = isSessionDuration ? 'timeofday' : 'number';
  const dataMap = [[{
    type: 'date',
    label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Day', 'google-site-kit')
  }, {
    type: 'string',
    role: 'tooltip',
    p: {
      html: true
    }
  }, {
    type: dataType,
    label: dataLabels[selectedStats]
  }, {
    type: dataType,
    label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('Previous period', 'google-site-kit')
  }]];
  const {
    compareRange,
    currentRange
  } = (0,_partition_report__WEBPACK_IMPORTED_MODULE_5__.partitionAnalytics4Report)(rows, {
    dateRangeLength: days
  });
  const lastMonthData = reduceAnalytics4RowsData(currentRange, selectedStats);
  const previousMonthData = reduceAnalytics4RowsData(compareRange, selectedStats);
  const locale = (0,_js_util_i18n__WEBPACK_IMPORTED_MODULE_3__.getLocale)();
  const localeDateOptions = {
    weekday: 'short',
    month: 'short',
    day: 'numeric'
  };
  lastMonthData.forEach((row, i) => {
    if (!row[0] || !row[1] || !previousMonthData[i]) {
      return;
    }
    const chartDataFormat = chartDataFormats[selectedStats];
    const currentMonthDatum = chartDataFormat(row[1]);
    const previousMonthDatum = chartDataFormat(previousMonthData[i][1]);
    const prevMonth = parseFloat(previousMonthDatum);
    const difference = (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.calculateDifferenceBetweenChartValues)(currentMonthDatum, prevMonth);
    const svgArrow = (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.getChartDifferenceArrow)(difference);
    const dateRange = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.sprintf)(/* translators: 1: date for user stats, 2: previous date for user stats comparison */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__._x)('%1$s vs %2$s', 'Date range for chart tooltip', 'google-site-kit'), row[0].toLocaleDateString(locale, localeDateOptions), previousMonthData[i][0].toLocaleDateString(locale, localeDateOptions));
    const statInfo = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.sprintf)(/* translators: 1: selected stat label, 2: numeric value of selected stat, 3: up or down arrow , 4: different change in percentage */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__._x)('%1$s: <strong>%2$s</strong> <em>%3$s %4$s</em>', 'Stat information for chart tooltip', 'google-site-kit'), dataLabels[selectedStats], tooltipDataFormats[selectedStats](currentMonthDatum), svgArrow, (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.numFmt)(Math.abs(difference), '%'));
    dataMap.push([row[0], `<div class="${classnames__WEBPACK_IMPORTED_MODULE_0___default()('googlesitekit-visualization-tooltip', {
      'googlesitekit-visualization-tooltip--up': difference > 0,
      'googlesitekit-visualization-tooltip--down': difference < 0
    })}">
				<p>${dateRange}</p>
				<p>${statInfo}</p>
			</div>`, isSessionDuration ? (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.convertSecondsToArray)(currentMonthDatum) : currentMonthDatum, isSessionDuration ? (0,_js_util__WEBPACK_IMPORTED_MODULE_4__.convertSecondsToArray)(previousMonthDatum) : previousMonthDatum]);
  });
  return dataMap;
}

/***/ }),

/***/ "./js/modules/analytics-4/utils/formatting.js":
/*!****************************************************!*\
  !*** ./js/modules/analytics-4/utils/formatting.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   decodeAmpersand: () => (/* binding */ decodeAmpersand),
/* harmony export */   splitCategories: () => (/* binding */ splitCategories)
/* harmony export */ });
/**
 * Formatting helpers.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Converts ampersand HTML entities into characters.
 *
 * @since 1.152.0
 *
 * @param {string} input Input string.
 * @return {string} String with ampersand converted to char, if present.
 */
function decodeAmpersand(input) {
  return input.replace(/&amp;/gi, '&');
}

/**
 * Splits a string of categories separated by ; and returns an array of categories.
 * Decodes ampersands before doing so.
 *
 * @since 1.152.0
 *
 * @param {string} input Input string containing categories separated by ;.
 * @return {Array.<string>} Array of categories.
 */
function splitCategories(input) {
  return decodeAmpersand(input).split('; ');
}

/***/ }),

/***/ "./js/modules/analytics-4/utils/google-tag.js":
/*!****************************************************!*\
  !*** ./js/modules/analytics-4/utils/google-tag.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   getBestTagID: () => (/* binding */ getBestTagID)
/* harmony export */ });
/**
 * Google Tag utilities.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Determines the best Google Tag ID to use from the Google Tag IDs array present in a container response.
 *
 * @since 1.98.0
 *
 * @param {Array}  tagIDs        Array of tag IDs.
 * @param {string} measurementID This will be preferred over other tags that start with "G-" in the array.
 * @return {string} Gets the best possible Google Tag ID to set in the plugin from an array of Google Tag IDs.
 */
function getBestTagID(tagIDs, measurementID) {
  // If there is only one tag id in the array, return it.
  if (tagIDs.length === 1) {
    return tagIDs[0];
  }

  // If there are multiple tags, return the first one that starts with `GT-`.
  const gtTagID = tagIDs.find(tagID => tagID.substring(0, 3) === 'GT-');
  if (gtTagID) {
    return gtTagID;
  }

  // Otherwise, return the `measurement_id` if it is in the array.
  if (tagIDs.includes(measurementID)) {
    return measurementID;
  }

  // Otherwise, return the first one that starts with `G-`.
  const gTagID = tagIDs.find(tagID => tagID.substring(0, 2) === 'G-');
  if (gTagID) {
    return gTagID;
  }

  // If none of the above, return the first one.
  return tagIDs[0];
}

/***/ }),

/***/ "./js/modules/analytics-4/utils/index.js":
/*!***********************************************!*\
  !*** ./js/modules/analytics-4/utils/index.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   decodeAmpersand: () => (/* reexport safe */ _formatting__WEBPACK_IMPORTED_MODULE_5__.decodeAmpersand),
/* harmony export */   extractAnalytics4DashboardData: () => (/* reexport safe */ _extract_dashboard_data__WEBPACK_IMPORTED_MODULE_4__.extractAnalytics4DashboardData),
/* harmony export */   extractAnalyticsDataForPieChart: () => (/* reexport safe */ _chart__WEBPACK_IMPORTED_MODULE_0__.extractAnalyticsDataForPieChart),
/* harmony export */   isSingleSlice: () => (/* reexport safe */ _chart__WEBPACK_IMPORTED_MODULE_0__.isSingleSlice),
/* harmony export */   isValidDimensionFilters: () => (/* reexport safe */ _report_validation__WEBPACK_IMPORTED_MODULE_3__.isValidDimensionFilters),
/* harmony export */   isValidDimensions: () => (/* reexport safe */ _report_validation__WEBPACK_IMPORTED_MODULE_3__.isValidDimensions),
/* harmony export */   isValidMetricFilters: () => (/* reexport safe */ _report_validation__WEBPACK_IMPORTED_MODULE_3__.isValidMetricFilters),
/* harmony export */   isValidMetrics: () => (/* reexport safe */ _report_validation__WEBPACK_IMPORTED_MODULE_3__.isValidMetrics),
/* harmony export */   isValidOrders: () => (/* reexport safe */ _report_validation__WEBPACK_IMPORTED_MODULE_3__.isValidOrders),
/* harmony export */   isZeroReport: () => (/* reexport safe */ _is_zero_report__WEBPACK_IMPORTED_MODULE_1__.isZeroReport),
/* harmony export */   normalizeReportOptions: () => (/* reexport safe */ _report_normalization__WEBPACK_IMPORTED_MODULE_2__.normalizeReportOptions),
/* harmony export */   splitCategories: () => (/* reexport safe */ _formatting__WEBPACK_IMPORTED_MODULE_5__.splitCategories)
/* harmony export */ });
/* harmony import */ var _chart__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./chart */ "./js/modules/analytics-4/utils/chart.js");
/* harmony import */ var _is_zero_report__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./is-zero-report */ "./js/modules/analytics-4/utils/is-zero-report.js");
/* harmony import */ var _report_normalization__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./report-normalization */ "./js/modules/analytics-4/utils/report-normalization.js");
/* harmony import */ var _report_validation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./report-validation */ "./js/modules/analytics-4/utils/report-validation.js");
/* harmony import */ var _extract_dashboard_data__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./extract-dashboard-data */ "./js/modules/analytics-4/utils/extract-dashboard-data.js");
/* harmony import */ var _formatting__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./formatting */ "./js/modules/analytics-4/utils/formatting.js");
/**
 * Analytics 4 utility functions.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */








/***/ }),

/***/ "./js/modules/analytics-4/utils/is-zero-report.js":
/*!********************************************************!*\
  !*** ./js/modules/analytics-4/utils/is-zero-report.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   isZeroReport: () => (/* binding */ isZeroReport)
/* harmony export */ });
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/**
 * Report utilities.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Checks whether the report data has only zero values.
 *
 * @since 1.95.0
 *
 * @param {Object} report Report data object.
 * @return {(boolean|undefined)} Returns TRUE if the report data is empty or has only zero values, FALSE if there is at least one non-zero value, or undefined if the report data is not resolved yet.
 */
function isZeroReport(report) {
  if (report === undefined) {
    return undefined;
  }

  // If there is no rows array, no totals array, or totals is an array of empty objects, this is an empty report.
  if (!report?.rows || !report?.totals || report?.totals?.every(lodash__WEBPACK_IMPORTED_MODULE_0__.isEmpty)) {
    return true;
  }

  // false means there _is_ some report data
  return !report.totals.some(totals => {
    if (!totals.metricValues) {
      return false;
    }
    return totals.metricValues.some(({
      value
    }) => value > 0);
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/utils/overall-page-metrics.js":
/*!**************************************************************!*\
  !*** ./js/modules/analytics-4/utils/overall-page-metrics.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   calculateOverallPageMetricsData: () => (/* binding */ calculateOverallPageMetricsData)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _parseDimensionStringToDate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parseDimensionStringToDate */ "./js/modules/analytics-4/utils/parseDimensionStringToDate.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/**
 * Overall Page Metrics utility functions.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



/**
 * Parse Analytics 4 report into data suitable for rendering the data blocks in the Overall Page Metrics widget.
 *
 * @typedef {Object} OverallPageMetricsData
 * @property {string}         metric          - Google Analytics metric identifier.
 * @property {string}         title           - Translated metric title.
 * @property {Array.<Object>} sparkLineData   - Data for rendering the sparkline.
 * @property {string}         [datapointUnit] - Optional datapoint unit, e.g. '%', 's'.
 * @property {number}         total           - Total count for the metric.
 * @property {number}         change          - Monthly change for the metric.
 *
 * @since 1.96.0
 *
 * @param {Object} report    Analytics report data.
 * @param {string} startDate Start date for the report.
 * @return {Array.<OverallPageMetricsData>} Array of data for rendering the data blocks in the Overall Page Metrics widget.
 */

function calculateOverallPageMetricsData(report, startDate) {
  const metricsData = [{
    metric: 'screenPageViews',
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Pageviews', 'google-site-kit'),
    sparkLineData: [[{
      type: 'date',
      label: 'Day'
    }, {
      type: 'number',
      label: 'Pageviews'
    }]],
    total: 0,
    change: 0
  }, {
    metric: 'sessions',
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Sessions', 'google-site-kit'),
    sparkLineData: [[{
      type: 'date',
      label: 'Day'
    }, {
      type: 'number',
      label: 'Sessions'
    }]],
    total: 0,
    change: 0
  }, {
    metric: 'engagementRate',
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Engagement Rate', 'google-site-kit'),
    sparkLineData: [[{
      type: 'date',
      label: 'Day'
    }, {
      type: 'number',
      label: 'Engagement Rate'
    }]],
    datapointUnit: '%',
    total: 0,
    change: 0
  }, {
    metric: 'averageSessionDuration',
    title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Session Duration', 'google-site-kit'),
    sparkLineData: [[{
      type: 'date',
      label: 'Day'
    }, {
      type: 'number',
      label: 'Session Duration'
    }]],
    datapointUnit: 's',
    total: 0,
    change: 0
  }];
  const {
    totals = [],
    rows = []
  } = report || {};
  const lastMonth = totals[0]?.metricValues || [];
  const previousMonth = totals[1]?.metricValues || [];
  const startDateTime = (0,_js_util__WEBPACK_IMPORTED_MODULE_2__.stringToDate)(startDate).getTime();
  const currentDateRangeRows = rows.filter(({
    dimensionValues
  }) => {
    if (dimensionValues[1].value !== 'date_range_0') {
      return false;
    }

    // We only want half of the date range, as having a comparison date range in the query doubles the range.
    // In order to achieve this, we filter out entries before the start date (the comparison start date will be earlier).
    const rowDate = (0,_parseDimensionStringToDate__WEBPACK_IMPORTED_MODULE_1__["default"])(dimensionValues[0].value);
    return rowDate.getTime() >= startDateTime;
  });
  return metricsData.map(({
    datapointDivider = 1,
    ...metricData
  }, index) => {
    currentDateRangeRows.forEach(({
      dimensionValues,
      metricValues
    }) => {
      const dateString = dimensionValues[0].value;
      const date = (0,_parseDimensionStringToDate__WEBPACK_IMPORTED_MODULE_1__["default"])(dateString);
      metricData.sparkLineData.push([date, metricValues[index].value]);
    });
    metricData.total = (lastMonth[index]?.value || 0) / datapointDivider;
    metricData.change = (0,_js_util__WEBPACK_IMPORTED_MODULE_2__.calculateChange)(previousMonth[index]?.value || 0, lastMonth[index]?.value || 0);
    return metricData;
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/utils/parseDimensionStringToDate.js":
/*!********************************************************************!*\
  !*** ./js/modules/analytics-4/utils/parseDimensionStringToDate.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/**
 * `parseDimensionStringToDate` utility.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Converts a dimnension string date into a Date object accounting for differences in timezones.
 *
 * @since 1.10.0
 * @since 1.123.0 Migrated from analytics to analytics-4.
 * @private
 *
 * @param {string} dateString String representing the date in the format of `YYYYMMDD`.
 * @return {(Date|boolean)} Object representing the date passed, or false if parsing fails or a non-string is passed.
 */
function parseDimensionStringToDate(dateString) {
  if ('string' === typeof dateString && dateString.match(/[0-9]{8}/)) {
    const year = dateString.slice(0, 4);
    const monthIndex = Number(dateString.slice(4, 6)) - 1;
    const day = dateString.slice(6, 8);
    return new Date(year, monthIndex.toString(), day);
  }
  return false;
}
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (parseDimensionStringToDate);

/***/ }),

/***/ "./js/modules/analytics-4/utils/partition-report.js":
/*!**********************************************************!*\
  !*** ./js/modules/analytics-4/utils/partition-report.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   partitionAnalytics4Report: () => (/* binding */ partitionAnalytics4Report)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/**
 * Analytics-4 partition report utility.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Splits report data into segments for current and comparison ranges.
 *
 * @since 1.96.0
 *
 * @param {Array}  report               Report rows.
 * @param {Object} args                 Additional arguments.
 * @param {number} args.dateRangeLength Date range length of report segments.
 * @return {Object} Object with keys for `compareRange` and `currentRange`.
 */
function partitionAnalytics4Report(report, {
  dateRangeLength
}) {
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(Array.isArray(report), 'report must be an array to partition.');
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(Number.isInteger(dateRangeLength) && dateRangeLength > 0, 'dateRangeLength must be a positive integer.');
  function getRowsForDateRange(dateRange) {
    // Filter the report to get only rows that match the given date range.
    return report.filter(({
      dimensionValues: [, dateValue]
    }) => dateValue.value === dateRange);
  }

  // Use a negative date range length for reverse slicing.
  const reverseDateRangeLength = -1 * dateRangeLength;

  // Get the rows for the current date range and the compare date range.
  // The current range should always be sliced from the end.
  const currentRange = getRowsForDateRange('date_range_0').slice(reverseDateRangeLength);
  // The compare range continues from where the current left off (slicing towards the start),
  // and may be shorter (where older data is not available yet) which is fine.
  const compareRange = getRowsForDateRange('date_range_1').slice(reverseDateRangeLength * 2, reverseDateRangeLength);
  return {
    currentRange,
    compareRange
  };
}

/***/ }),

/***/ "./js/modules/analytics-4/utils/report-args.js":
/*!*****************************************************!*\
  !*** ./js/modules/analytics-4/utils/report-args.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   generateReportDetailArgs: () => (/* binding */ generateReportDetailArgs),
/* harmony export */   generateReportFilterArgs: () => (/* binding */ generateReportFilterArgs)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/**
 * Google Analytics 4 report argument utilities.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Internal dependencies
 */


/**
 * Generates a set of report detail arguments for a Google Analytics 4 report.
 *
 * @since 1.98.0
 *
 * @param {Object} details Report details.
 * @return {Object} Report detail arguments.
 */
function generateReportDetailArgs(details) {
  invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,lodash__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(details), 'A valid details object is required.');
  const {
    metric,
    dimension
  } = details;
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(!metric || typeof metric === 'string', 'A valid metric string is required.');
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(!dimension || typeof dimension === 'string', 'A valid dimension string is required.');
  if ((0,lodash__WEBPACK_IMPORTED_MODULE_1__.isEmpty)(details)) {
    return {};
  }
  const detailArgs = {};
  if (metric) {
    detailArgs[_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_2__.REPORT_ARGS_SELECTED_METRIC_KEY] = JSON.stringify([metric]);
  }
  if (dimension) {
    detailArgs[_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_2__.REPORT_ARGS_SELECTED_DIMENSION_KEY] = JSON.stringify([dimension]);
  }
  return detailArgs;
}

/**
 * Generates a set of report filter arguments for a Google Analytics 4 report.
 *
 * @since 1.98.0
 *
 * @param {Object} filters Report filters.
 * @return {Object} Report filter arguments.
 */
function generateReportFilterArgs(filters) {
  invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,lodash__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(filters), 'A valid filters object is required.');
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(Reflect.ownKeys(filters).every(dimensionName => {
    const dimensionValue = filters[dimensionName];
    return typeof dimensionName === 'string' && typeof dimensionValue === 'string';
  }), 'A valid set of dimension names and values is required.');
  if ((0,lodash__WEBPACK_IMPORTED_MODULE_1__.isEmpty)(filters)) {
    return {};
  }
  const dataFilters = Object.entries(filters).map(([dimensionName, dimensionValue]) => ({
    type: 1,
    fieldName: dimensionName,
    evaluationType: 1,
    expressionList: [dimensionValue],
    complement: false,
    isCaseSensitive: true,
    expression: ''
  }));
  return {
    [_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_2__.REPORT_ARGS_DATA_FILTERS_KEY]: JSON.stringify(dataFilters)
  };
}

/***/ }),

/***/ "./js/modules/analytics-4/utils/report-date-range-args.js":
/*!****************************************************************!*\
  !*** ./js/modules/analytics-4/utils/report-date-range-args.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   generateDateRangeArgs: () => (/* binding */ generateDateRangeArgs)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/**
 * Report date range args utils.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */


/**
 * Generates an object with the appropriate structure to pass to report selectors.
 *
 * @since 1.27.0
 * @since 1.123.0 Migrated from analytics to analytics-4.
 *
 * @param {Object} dates                    Object containing the dates.
 * @param {string} dates.startDate          Start date in YYYY-MM-DD format.
 * @param {string} dates.endDate            End date in YYYY-MM-DD format.
 * @param {string} [dates.compareStartDate] Optional. Start date in YYYY-MM-DD format.
 * @param {string} [dates.compareEndDate]   Optional. End date in YYYY-MM-DD format.
 * @return {Object} Date range object.
 */
function generateDateRangeArgs(dates) {
  const {
    startDate,
    endDate,
    compareStartDate,
    compareEndDate
  } = dates;
  invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_util__WEBPACK_IMPORTED_MODULE_1__.isValidDateString)(startDate), 'A valid startDate is required.');
  invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_util__WEBPACK_IMPORTED_MODULE_1__.isValidDateString)(endDate), 'A valid endDate is required.');
  const range = {
    '_u.date00': startDate.replace(/-/g, ''),
    '_u.date01': endDate.replace(/-/g, '')
  };
  if (compareStartDate || compareEndDate) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_util__WEBPACK_IMPORTED_MODULE_1__.isValidDateString)(compareStartDate) && (0,_js_util__WEBPACK_IMPORTED_MODULE_1__.isValidDateString)(compareEndDate), 'Valid compareStartDate and compareEndDate values are required.');
    range['_u.date10'] = compareStartDate.replace(/-/g, '');
    range['_u.date11'] = compareEndDate.replace(/-/g, '');
  }
  return range;
}

/***/ }),

/***/ "./js/modules/analytics-4/utils/report-normalization.js":
/*!**************************************************************!*\
  !*** ./js/modules/analytics-4/utils/report-normalization.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   normalizeReportOptions: () => (/* binding */ normalizeReportOptions)
/* harmony export */ });
/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! memize */ "../node_modules/memize/index.js");
/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(memize__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
/**
 * Analytics 4 report normalization utilities.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Normalizes report options.
 *
 * @since 1.94.0
 *
 * @param {Object} options Report options object.
 * @return {Object} Normalized options object.
 */
const normalizeReportOptions = memize__WEBPACK_IMPORTED_MODULE_0___default()(({
  metrics,
  dimensions,
  ...options
} = {}) => {
  return {
    metrics: normalizeMetrics(metrics),
    dimensions: normalizeDimensions(dimensions),
    ...options
  };
});
function normalizeMetrics(metrics) {
  return (0,lodash__WEBPACK_IMPORTED_MODULE_1__.castArray)(metrics).map(metric => typeof metric === 'string' ? {
    name: metric
  } : metric).filter(metric => (0,lodash__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(metric));
}
function normalizeDimensions(dimensions) {
  return (0,lodash__WEBPACK_IMPORTED_MODULE_1__.castArray)(dimensions).map(dimension => typeof dimension === 'string' ? {
    name: dimension
  } : dimension).filter(dimension => (0,lodash__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(dimension));
}

/***/ }),

/***/ "./js/modules/analytics-4/utils/report-rows-with-set-values.js":
/*!*********************************************************************!*\
  !*** ./js/modules/analytics-4/utils/report-rows-with-set-values.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   reportRowsWithSetValues: () => (/* binding */ reportRowsWithSetValues)
/* harmony export */ });
/**
 * Utility to filter out Analytics report rows which don't have a value set.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

function reportRowsWithSetValues(rows, maxRows = 3) {
  const rowsWithSetValues = rows.filter(({
    dimensionValues
  }) => dimensionValues[0].value !== '(not set)' && dimensionValues[0].value !== '');
  return rowsWithSetValues.slice(0, maxRows);
}

/***/ }),

/***/ "./js/modules/analytics-4/utils/report-validation.js":
/*!***********************************************************!*\
  !*** ./js/modules/analytics-4/utils/report-validation.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   isValidDimensionFilters: () => (/* binding */ isValidDimensionFilters),
/* harmony export */   isValidDimensions: () => (/* binding */ isValidDimensions),
/* harmony export */   isValidMetricFilters: () => (/* binding */ isValidMetricFilters),
/* harmony export */   isValidMetrics: () => (/* binding */ isValidMetrics),
/* harmony export */   isValidOrders: () => (/* binding */ isValidOrders)
/* harmony export */ });
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_util_report_validation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/util/report-validation */ "./js/util/report-validation.js");
/**
 * Analytics 4 reporting API validation utilities.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* eslint complexity: [ "error", 17 ] */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */


/**
 * Verifies that provided metrics match allowed values. Metrics can be a string,
 * an array of string, an array of objects or mix of strings and objects.
 * Objects must have a "name" property that matches the regex `/^[a-zA-Z0-9_]+$/`
 * to be valid. Objects can optionally include an "expression" property.
 *
 * When a single string is provided, it must be a metric name or a comma-separated
 * list of metric names.
 *
 * A metric name must match the regular expression `/^[a-zA-Z0-9_]+$/`.
 *
 * @since 1.94.0
 * @since 1.98.0 Added a regular expression to validate metric names, in keeping with the GA4 API.
 *
 * @param {string|string[]|Object|Object[]} metrics The metrics to check.
 * @return {boolean} TRUE if metrics are valid, otherwise FALSE.
 */
function isValidMetrics(metrics) {
  function isValidName(metricName) {
    return typeof metricName === 'string' && /^[a-zA-Z0-9_]+$/.test(metricName);
  }
  if (typeof metrics === 'string') {
    const metricNames = metrics.split(',');
    return metricNames.every(isValidName);
  }
  return (0,_js_util_report_validation__WEBPACK_IMPORTED_MODULE_1__.isValidStringsOrObjects)(metrics, metric => {
    const validName = metric.hasOwnProperty('name') && isValidName(metric.name);

    // 'expression' is optional, so if it wasn't provided, we can
    // return early.
    if (!metric.hasOwnProperty('expression')) {
      return validName;
    }

    // 'expression', if provided, must be a string.
    const validExpression = typeof metric.expression === 'string';
    return validName && validExpression;
  }, isValidName);
}

/**
 * Verifies provided dimensions to make sure it matches allowed values. It can be a string,
 * array of strings, an object with "name" field, array of such objects or an array of strings
 * and objects.
 *
 * @since 1.94.0
 *
 * @param {string|string[]|Object|Object[]} dimensions The dimensions to check.
 * @return {boolean} TRUE if dimensions are valid, otherwise FALSE.
 */
function isValidDimensions(dimensions) {
  return (0,_js_util_report_validation__WEBPACK_IMPORTED_MODULE_1__.isValidStringsOrObjects)(dimensions, dimension => {
    return dimension.hasOwnProperty('name') && typeof dimension.name === 'string';
  });
}

/**
 * Verifies provided dimensionFilters to make sure they match allowed values found in dimensions.
 *
 * @since 1.94.0
 *
 * @param {Object} filters The dimension filters to check.
 * @return {boolean} TRUE if dimension filters are valid, otherwise FALSE.
 */
function isValidDimensionFilters(filters) {
  // Ensure every dimensionFilter key corresponds to a valid dimension.
  const validType = ['string'];
  return Object.keys(filters).every(dimension => {
    if (validType.includes(typeof filters[dimension])) {
      return true;
    }
    if (Array.isArray(filters[dimension])) {
      return filters[dimension].every(param => validType.includes(typeof param));
    }
    if ((0,lodash__WEBPACK_IMPORTED_MODULE_0__.isPlainObject)(filters[dimension])) {
      const props = Object.keys(filters[dimension]);
      if (!props.includes('filterType')) {
        return false;
      }
      if (filters[dimension].filterType !== 'emptyFilter' && !props.includes('value')) {
        return false;
      }
      return true;
    }
    return false;
  });
}

/**
 * Verifies provided metricFilters to make sure they match allowed values found in metrics and supported filters.
 *
 * @since 1.111.0
 *
 * @param {Object} filters The metric filters to check.
 * @return {boolean} TRUE if dimension filters are valid, otherwise FALSE.
 */
function isValidMetricFilters(filters) {
  const validType = ['string'];
  const allowedFilterTypes = ['numericFilter', 'betweenFilter'];
  return Object.values(filters).every(filter => {
    if (validType.includes(typeof filter)) {
      return true;
    }
    if (Array.isArray(filter)) {
      return filter.every(param => validType.includes(typeof param));
    }
    if (!(0,lodash__WEBPACK_IMPORTED_MODULE_0__.isPlainObject)(filter)) {
      return false;
    }
    const {
      filterType,
      value,
      fromValue,
      toValue
    } = filter;

    // Validate filterType if present
    if (filterType && !allowedFilterTypes.includes(filterType)) {
      return false;
    }
    const props = Object.keys(filter);

    // Numeric Filter (default if filterType is missing)
    if (!filterType || filterType === 'numericFilter') {
      return props.includes('operation') && props.includes('value') && (!(0,lodash__WEBPACK_IMPORTED_MODULE_0__.isPlainObject)(value) || 'int64Value' in value);
    }

    // Between Filter
    if (filterType === 'betweenFilter') {
      return props.includes('fromValue') && props.includes('toValue') && [fromValue, toValue].every(val => !(0,lodash__WEBPACK_IMPORTED_MODULE_0__.isPlainObject)(val) || 'int64Value' in val);
    }
    return false;
  });
}

/**
 * Verifies that order definitions are valid for a report. It should be an array
 * of objects where each object has either a "metric" or a "dimension" property,
 * and an optional "desc" property. The "metric" and "dimension" properties should
 * be objects with "metricName" and "dimensionName" properties respectively.
 *
 * @since 1.95.0
 *
 * @param {Object[]} orders The order definitions to check.
 * @return {boolean} TRUE if order definitions are valid, otherwise FALSE.
 */
function isValidOrders(orders) {
  if (!Array.isArray(orders)) {
    return false;
  }
  return orders.every(order => {
    if (!(0,lodash__WEBPACK_IMPORTED_MODULE_0__.isPlainObject)(order)) {
      return false;
    }
    if (order.hasOwnProperty('desc') && typeof order.desc !== 'boolean') {
      return false;
    }
    if (order.metric) {
      return !order.dimension && typeof order.metric?.metricName === 'string';
    }
    if (order.dimension) {
      return typeof order.dimension?.dimensionName === 'string';
    }
    return false;
  });
}

/***/ }),

/***/ "./js/modules/analytics-4/utils/tag-matchers.js":
/*!******************************************************!*\
  !*** ./js/modules/analytics-4/utils/tag-matchers.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__),
/* harmony export */   getTagMatchers: () => (/* binding */ getTagMatchers)
/* harmony export */ });
/**
 * Tag matching patterns.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Returns GA4 tag matchers.
 *
 * @since 1.35.0
 *
 * @return {Array.<RegExp>} Array of RegExp objects.
 */
function getTagMatchers() {
  const tagMatchers = [/__gaTracker\s*\(\s*['|"]create['|"]\s*,\s*['|"](G-[a-zA-Z0-9]+)['|"], ?['|"]auto['|"]\s*\)/i, /_gaq\.push\s*\(\s*\[\s*['|"][^_]*_setAccount['|"]\s*,\s*['|"](G-[a-zA-Z0-9]+)['|"]\s*],?\s*\)/i, /<amp-analytics\s+[^>]*type="gtag"[^>]*>[^<]*<script\s+type="application\/json">[^<]*"gtag_id"\s*:\s*"(G-[a-zA-Z0-9]+)"/i, /<amp-analytics\s+[^>]*type="googleanalytics"[^>]*>[^<]*<script\s+type="application\/json">[^<]*"account"\s*:\s*"(G-[a-zA-Z0-9]+)"/i];
  for (const subdomain of ['', 'www\\.']) {
    tagMatchers.push(new RegExp(`<script\\s+[^>]*src=['|"]https?://${subdomain}googletagmanager\\.com/gtag/js\\?id=(G-[a-zA-Z0-9]+)['|"][^>]*></script>`, 'i'), new RegExp(`<script\\s+[^>]*src=['|"]https?://${subdomain}googletagmanager\\.com/gtag/js\\?id=(G-[a-zA-Z0-9]+)['|"][^/]*/>`, 'i'));
  }
  for (const func of ['__gaTracker', 'ga', 'gtag']) {
    tagMatchers.push(new RegExp(`${func}\\s*\\(\\s*['|"]create['|"]\\s*,\\s*['|"](G-[a-zA-Z0-9]+)['|"],\\s*['|"]auto['|"]\\s*\\)`, 'i'), new RegExp(`${func}\\s*\\(\\s*['|"]config['|"]\\s*,\\s*['|"](G-[a-zA-Z0-9]+)['|"]\\s*\\)`, 'i'));
  }
  return tagMatchers;
}
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getTagMatchers());

/***/ }),

/***/ "./js/modules/analytics-4/utils/validation.js":
/*!****************************************************!*\
  !*** ./js/modules/analytics-4/utils/validation.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   isValidAccountID: () => (/* reexport safe */ _js_util__WEBPACK_IMPORTED_MODULE_3__.isValidNumericID),
/* harmony export */   isValidAccountSelection: () => (/* binding */ isValidAccountSelection),
/* harmony export */   isValidGoogleTagAccountID: () => (/* binding */ isValidGoogleTagAccountID),
/* harmony export */   isValidGoogleTagContainerID: () => (/* binding */ isValidGoogleTagContainerID),
/* harmony export */   isValidGoogleTagID: () => (/* binding */ isValidGoogleTagID),
/* harmony export */   isValidMeasurementID: () => (/* binding */ isValidMeasurementID),
/* harmony export */   isValidPropertyID: () => (/* binding */ isValidPropertyID),
/* harmony export */   isValidPropertySelection: () => (/* binding */ isValidPropertySelection),
/* harmony export */   isValidWebDataStreamID: () => (/* binding */ isValidWebDataStreamID),
/* harmony export */   isValidWebDataStreamName: () => (/* binding */ isValidWebDataStreamName),
/* harmony export */   isValidWebDataStreamSelection: () => (/* binding */ isValidWebDataStreamSelection),
/* harmony export */   validateAudience: () => (/* binding */ validateAudience),
/* harmony export */   validateReport: () => (/* binding */ validateReport)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/util */ "./js/util/index.js");
/* harmony import */ var _js_util_report_validation__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/util/report-validation */ "./js/util/report-validation.js");
/* harmony import */ var _report_normalization__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./report-normalization */ "./js/modules/analytics-4/utils/report-normalization.js");
/* harmony import */ var _report_validation__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./report-validation */ "./js/modules/analytics-4/utils/report-validation.js");
/**
 * Validation utilities.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * Internal dependencies
 */






/**
 * Checks if the given value is a valid selection for an Account.
 *
 * @since 1.119.0
 *
 * @param {?string} value Selected value.
 * @return {boolean} True if valid, otherwise false.
 */
function isValidAccountSelection(value) {
  if (value === _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.ACCOUNT_CREATE) {
    return true;
  }
  return (0,_js_util__WEBPACK_IMPORTED_MODULE_3__.isValidNumericID)(value);
}

/**
 * Checks if the given account ID appears to be a valid Analytics account.
 *
 * @since 1.8.0
 * @since 1.121.0 Migrated from analytics to analytics-4.
 *
 * @param {(string|number)} accountID Account ID to test.
 * @return {boolean} Whether or not the given account ID is valid.
 */


/**
 * Checks whether the given property ID appears to be valid.
 *
 * @since 1.31.0
 *
 * @param {*} propertyID Property ID to check.
 * @return {boolean} Whether or not the given property ID is valid.
 */
function isValidPropertyID(propertyID) {
  return typeof propertyID === 'string' && /^\d+$/.test(propertyID);
}

/**
 * Checks if the given value is a valid selection for a Property.
 *
 * @since 1.31.0
 *
 * @param {?string} value Selected value.
 * @return {boolean} True if valid, otherwise false.
 */
function isValidPropertySelection(value) {
  if (value === _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.PROPERTY_CREATE) {
    return true;
  }
  return isValidPropertyID(value);
}

/**
 * Checks whether the given web data stream ID appears to be valid.
 *
 * @since 1.33.0
 *
 * @param {*} webDataStreamID Web data stream ID to check.
 * @return {boolean} TRUE if the web data stream ID is valid, otherwise FALSE.
 */
function isValidWebDataStreamID(webDataStreamID) {
  return typeof webDataStreamID === 'string' && /^\d+$/.test(webDataStreamID);
}

/**
 * Checks whether the given web data stream is a valid selection.
 *
 * @since 1.35.0
 *
 * @param {?string} webDataStreamID Web data stream to check.
 * @return {boolean} TRUE if the web data stream selection is valid, otherwise FALSE.
 */
function isValidWebDataStreamSelection(webDataStreamID) {
  if (webDataStreamID === _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_2__.WEBDATASTREAM_CREATE) {
    return true;
  }
  return isValidWebDataStreamID(webDataStreamID);
}

/**
 * Checks if the given web data stream name appears to be valid.
 *
 * @since 1.124.0
 *
 * @param {string} value Web data stream name to test.
 * @return {boolean} True if valid, otherwise false.
 */
function isValidWebDataStreamName(value) {
  return typeof value === 'string' && value.trim().length > 0;
}

/**
 * Checks whether the given measurementID appears to be valid.
 *
 * @since 1.35.0
 *
 * @param {*} measurementID Web data stream measurementID to check.
 * @return {boolean} TRUE if the measurementID is valid, otherwise FALSE.
 */
function isValidMeasurementID(measurementID) {
  return typeof measurementID === 'string' && /^G-[a-zA-Z0-9]+$/.test(measurementID);
}

/**
 * Checks whether the given googleTagId appears to be valid.
 *
 * @since 1.90.0
 *
 * @param {*} googleTagID Google Tag ID to check.
 * @return {boolean} TRUE if the googleTagID is valid, otherwise FALSE.
 */
function isValidGoogleTagID(googleTagID) {
  return typeof googleTagID === 'string' && /^(G|GT|AW)-[a-zA-Z0-9]+$/.test(googleTagID);
}

/**
 * Checks whether the given googleTagAccountID appears to be valid.
 *
 * @since 1.90.0
 *
 * @param {*} googleTagAccountID Google Tag ID to check.
 * @return {boolean} TRUE if the googleTagAccountID is valid, otherwise FALSE.
 */
function isValidGoogleTagAccountID(googleTagAccountID) {
  return (0,_js_util__WEBPACK_IMPORTED_MODULE_3__.isValidNumericID)(googleTagAccountID);
}

/**
 * Checks whether the given googleTagContainerID appears to be valid.
 *
 * @since 1.90.0
 *
 * @param {*} googleTagContainerID Google Tag ID to check.
 * @return {boolean} TRUE if the googleTagContainerID is valid, otherwise FALSE.
 */
function isValidGoogleTagContainerID(googleTagContainerID) {
  return (0,_js_util__WEBPACK_IMPORTED_MODULE_3__.isValidNumericID)(googleTagContainerID);
}

/**
 * Checks whether a given report options object is valid.
 *
 * @since 1.130.0
 *
 * @param {Object} options The options for the report.
 */
function validateReport(options) {
  invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,lodash__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(options), 'options for Analytics 4 report must be an object.');
  invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_js_util_report_validation__WEBPACK_IMPORTED_MODULE_4__.isValidDateRange)(options), 'Either date range or start/end dates must be provided for Analytics 4 report.');
  const {
    metrics,
    dimensions,
    dimensionFilters,
    metricFilters,
    orderby
  } = (0,_report_normalization__WEBPACK_IMPORTED_MODULE_5__.normalizeReportOptions)(options);
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(metrics.length, 'Requests must specify at least one metric for an Analytics 4 report.');
  invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_report_validation__WEBPACK_IMPORTED_MODULE_6__.isValidMetrics)(metrics), 'metrics for an Analytics 4 report must be either a string, an array of strings, an object, an array of objects, or a mix of strings and objects. Objects must have a "name" property. Metric names must match the expression ^[a-zA-Z0-9_]+$.');
  if (dimensions) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_report_validation__WEBPACK_IMPORTED_MODULE_6__.isValidDimensions)(dimensions), 'dimensions for an Analytics 4 report must be either a string, an array of strings, an object, an array of objects, or a mix of strings and objects. Objects must have a "name" property.');
  }
  if (dimensionFilters) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_report_validation__WEBPACK_IMPORTED_MODULE_6__.isValidDimensionFilters)(dimensionFilters), 'dimensionFilters for an Analytics 4 report must be a map of dimension names as keys and dimension values as values.');
  }
  if (metricFilters) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_report_validation__WEBPACK_IMPORTED_MODULE_6__.isValidMetricFilters)(metricFilters), 'metricFilters for an Analytics 4 report must be a map of metric names as keys and filter value(s) as numeric fields, depending on the filterType.');
  }
  if (orderby) {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_report_validation__WEBPACK_IMPORTED_MODULE_6__.isValidOrders)(orderby), 'orderby for an Analytics 4 report must be an array of OrderBy objects where each object should have either a "metric" or "dimension" property, and an optional "desc" property.');
  }
}

/**
 * Checks whether the passed audience object is valid.
 *
 * @since 1.120.0
 *
 * @param {Object} audience Audience object to check.
 */
function validateAudience(audience) {
  const audienceFields = ['displayName', 'description', 'membershipDurationDays', 'eventTrigger', 'exclusionDurationMode', 'filterClauses'];
  const audienceRequiredFields = ['displayName', 'description', 'membershipDurationDays', 'filterClauses'];
  invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,lodash__WEBPACK_IMPORTED_MODULE_1__.isPlainObject)(audience), 'Audience must be an object.');
  Object.keys(audience).forEach(key => {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(audienceFields.includes(key), `Audience object must contain only valid keys. Invalid key: "${key}"`);
  });
  audienceRequiredFields.forEach(key => {
    invariant__WEBPACK_IMPORTED_MODULE_0___default()(audience[key], `Audience object must contain required keys. Missing key: "${key}"`);
  });
  invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,lodash__WEBPACK_IMPORTED_MODULE_1__.isArray)(audience.filterClauses), 'filterClauses must be an array with AudienceFilterClause objects.');
}

/***/ }),

/***/ "./js/modules/analytics-4/utils/withCustomDimensions.js":
/*!**************************************************************!*\
  !*** ./js/modules/analytics-4/utils/withCustomDimensions.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ withCustomDimensions)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/datastore/forms/constants */ "./js/googlesitekit/datastore/forms/constants.js");
/* harmony import */ var _js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/user/constants */ "./js/googlesitekit/datastore/user/constants.js");
/* harmony import */ var _js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/js/modules/analytics-4/datastore/constants */ "./js/modules/analytics-4/datastore/constants.js");
/* harmony import */ var _js_components_KeyMetrics_key_metrics_widgets__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/js/components/KeyMetrics/key-metrics-widgets */ "./js/components/KeyMetrics/key-metrics-widgets.js");
/* harmony import */ var _js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/js/components/KeyMetrics */ "./js/components/KeyMetrics/index.js");
/* harmony import */ var _js_util_errors__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/js/util/errors */ "./js/util/errors.js");
/* harmony import */ var _js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/js/hooks/useViewOnly */ "./js/hooks/useViewOnly.js");
/* harmony import */ var _js_modules_analytics_4_components_key_metrics__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/js/modules/analytics-4/components/key-metrics */ "./js/modules/analytics-4/components/key-metrics/index.js");
/* harmony import */ var _js_modules_analytics_4_hooks_useCustomDimensionsData__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @/js/modules/analytics-4/hooks/useCustomDimensionsData */ "./js/modules/analytics-4/hooks/useCustomDimensionsData.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * `withCustomDimensions` HOC.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */











function withCustomDimensions(options = {}) {
  const {
    dimensions,
    infoTooltip,
    reportOptions: wrappedReportOptions,
    title
  } = options;
  return WrappedComponent => {
    function WithCustomDimensionsComponent(props) {
      const isViewOnly = (0,_js_hooks_useViewOnly__WEBPACK_IMPORTED_MODULE_8__["default"])();
      const {
        Widget,
        widgetSlug
      } = props;
      const {
        description,
        infoTooltip: definedInfoTooltip,
        title: definedTitle
      } = _js_components_KeyMetrics_key_metrics_widgets__WEBPACK_IMPORTED_MODULE_5__.KEY_METRICS_WIDGETS[widgetSlug] || {};
      const tileTitle = title || definedTitle;
      const tileInfoTooltip = infoTooltip || definedInfoTooltip || description;
      const {
        customDimensions,
        hasCustomDimensions,
        customDimensionsCreationErrors,
        hasAnalyticsEditScope,
        isSyncingAvailableCustomDimensions,
        loading,
        isGatheringData,
        hasInvalidCustomDimensionError,
        invalidCustomDimensionReportOptions,
        redirectURL
      } = (0,_js_modules_analytics_4_hooks_useCustomDimensionsData__WEBPACK_IMPORTED_MODULE_10__["default"])({
        dimensions,
        widgetSlug,
        reportOptions: wrappedReportOptions
      });
      const {
        clearError,
        scheduleSyncAvailableCustomDimensions
      } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.MODULES_ANALYTICS_4);
      const {
        setValues
      } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_forms_constants__WEBPACK_IMPORTED_MODULE_2__.CORE_FORMS);
      const {
        setPermissionScopeError
      } = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_1__.useDispatch)(_js_googlesitekit_datastore_user_constants__WEBPACK_IMPORTED_MODULE_3__.CORE_USER);
      const handleCreateCustomDimensions = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_12__.useCallback)(() => {
        if (loading) {
          return;
        }
        setValues(_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.FORM_CUSTOM_DIMENSIONS_CREATE, {
          autoSubmit: true
        });
        if (!hasAnalyticsEditScope) {
          setPermissionScopeError({
            code: _js_util_errors__WEBPACK_IMPORTED_MODULE_7__.ERROR_CODE_MISSING_REQUIRED_SCOPE,
            message: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Additional permissions are required to create new Analytics custom dimensions', 'google-site-kit'),
            data: {
              status: 403,
              scopes: [_js_modules_analytics_4_datastore_constants__WEBPACK_IMPORTED_MODULE_4__.EDIT_SCOPE],
              skipModal: true,
              redirectURL
            }
          });
        }
      }, [hasAnalyticsEditScope, loading, setPermissionScopeError, setValues, redirectURL]);

      // If the list of available custom dimensions is outdated, sync it.
      (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_12__.useEffect)(() => {
        if (!customDimensions || !hasInvalidCustomDimensionError || isSyncingAvailableCustomDimensions || isViewOnly) {
          return;
        }
        (async () => {
          // Clear report errors so that the useEffect isn't
          // triggered multiple times.
          await Promise.all(invalidCustomDimensionReportOptions.map(args => {
            return clearError('getReport', [args]);
          }));

          // Sync available custom dimensions.
          scheduleSyncAvailableCustomDimensions();
        })();
      }, [clearError, customDimensions, hasInvalidCustomDimensionError, invalidCustomDimensionReportOptions, isSyncingAvailableCustomDimensions, isViewOnly, scheduleSyncAvailableCustomDimensions]);

      // Return early if the wrapped widget doesn't need custom dimensions.
      if (!customDimensions) {
        return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(WrappedComponent, {
          ...props
        });
      }

      // Show loading state.
      if (loading || isGatheringData === undefined) {
        return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__.MetricTileWrapper, {
          infoTooltip: tileInfoTooltip,
          moduleSlug: "analytics-4",
          title: tileTitle,
          Widget: Widget,
          loading: true
        });
      }
      const commonErrorProps = {
        headerText: tileTitle,
        infoTooltip: tileInfoTooltip
      };
      if (customDimensionsCreationErrors?.some(_js_util_errors__WEBPACK_IMPORTED_MODULE_7__.isInsufficientPermissionsError)) {
        // Handle permissions error encountered while creating
        // custom dimensions.
        return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__.InsufficientPermissionsError, {
          ...commonErrorProps,
          moduleSlug: "analytics-4",
          onRetry: handleCreateCustomDimensions
        });
      } else if (customDimensionsCreationErrors?.length > 0) {
        // Handle generic errors encountered while creating
        // custom dimensions.
        return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_modules_analytics_4_components_key_metrics__WEBPACK_IMPORTED_MODULE_9__.AnalyticsUpdateError, {
          ...commonErrorProps,
          error: customDimensionsCreationErrors[0],
          onRetry: handleCreateCustomDimensions
        });
      } else if (false === hasCustomDimensions) {
        return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_modules_analytics_4_components_key_metrics__WEBPACK_IMPORTED_MODULE_9__.CustomDimensionsMissingError, {
          ...commonErrorProps,
          onRetry: handleCreateCustomDimensions
        });
      }
      if (isGatheringData) {
        return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(_js_components_KeyMetrics__WEBPACK_IMPORTED_MODULE_6__.MetricTileTable, {
          infoTooltip: tileInfoTooltip,
          moduleSlug: "analytics-4",
          title: tileTitle,
          Widget: Widget,
          ZeroState: () => /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)("span", {
            children: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Setup successful: Analytics is gathering data for this metric', 'google-site-kit')
          })
        });
      }
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_11__.jsx)(WrappedComponent, {
        ...props
      });
    }
    WithCustomDimensionsComponent.displayName = 'WithCustomDimensions';
    if (WrappedComponent.displayName || WrappedComponent.name) {
      WithCustomDimensionsComponent.displayName += `(${WrappedComponent.displayName || WrappedComponent.name})`;
    }
    return WithCustomDimensionsComponent;
  };
}

/***/ }),

/***/ "./js/modules/search-console/constants.js":
/*!************************************************!*\
  !*** ./js/modules/search-console/constants.js ***!
  \************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   MODULE_SLUG_SEARCH_CONSOLE: () => (/* binding */ MODULE_SLUG_SEARCH_CONSOLE)
/* harmony export */ });
/**
 * Search Console module constants.
 *
 * Site Kit by Google, Copyright 2025 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const MODULE_SLUG_SEARCH_CONSOLE = 'search-console';

/***/ }),

/***/ "./js/modules/search-console/datastore/constants.js":
/*!**********************************************************!*\
  !*** ./js/modules/search-console/datastore/constants.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   DATE_RANGE_OFFSET: () => (/* binding */ DATE_RANGE_OFFSET),
/* harmony export */   MODULES_SEARCH_CONSOLE: () => (/* binding */ MODULES_SEARCH_CONSOLE)
/* harmony export */ });
/**
 * `modules/search-console` data store constants.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const MODULES_SEARCH_CONSOLE = 'modules/search-console';

// Date range offset days for Search Console report requests.
const DATE_RANGE_OFFSET = 0;

/***/ }),

/***/ "./js/modules/tagmanager/datastore/constants.js":
/*!******************************************************!*\
  !*** ./js/modules/tagmanager/datastore/constants.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   ACCOUNT_CREATE: () => (/* binding */ ACCOUNT_CREATE),
/* harmony export */   CONTAINER_CREATE: () => (/* binding */ CONTAINER_CREATE),
/* harmony export */   CONTEXT_AMP: () => (/* binding */ CONTEXT_AMP),
/* harmony export */   CONTEXT_WEB: () => (/* binding */ CONTEXT_WEB),
/* harmony export */   EDIT_SCOPE: () => (/* binding */ EDIT_SCOPE),
/* harmony export */   FORM_SETUP: () => (/* binding */ FORM_SETUP),
/* harmony export */   MODULES_TAGMANAGER: () => (/* binding */ MODULES_TAGMANAGER),
/* harmony export */   READ_SCOPE: () => (/* binding */ READ_SCOPE),
/* harmony export */   SETUP_MODE_WITH_ANALYTICS: () => (/* binding */ SETUP_MODE_WITH_ANALYTICS)
/* harmony export */ });
/**
 * `modules/tagmanager` data store constants.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

const MODULES_TAGMANAGER = 'modules/tagmanager';

// A special Account ID value used for the "Set up a new account" option.
const ACCOUNT_CREATE = 'account_create';
// A special Container ID value used for the "Set up a new container" option.
const CONTAINER_CREATE = 'container_create';
// Usage context for web containers.
const CONTEXT_WEB = 'web';
// Usage context for AMP containers.
const CONTEXT_AMP = 'amp';
// Form ID for the module setup form.
const FORM_SETUP = 'tagmanagerSetup';
// OAuth scope needed for viewing containers.
const READ_SCOPE = 'https://www.googleapis.com/auth/tagmanager.readonly';
// OAuth scope needed for creating containers.
const EDIT_SCOPE = 'https://www.googleapis.com/auth/tagmanager.edit.containers';
// A special setupMode value for when completing setup with Analytics.
const SETUP_MODE_WITH_ANALYTICS = 'SETUP_WITH_ANALYTICS';

/***/ }),

/***/ "./js/util/async.js":
/*!**************************!*\
  !*** ./js/util/async.js ***!
  \**************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   asyncRequire: () => (/* binding */ asyncRequire),
/* harmony export */   asyncRequireAll: () => (/* binding */ asyncRequireAll),
/* harmony export */   asyncRequireAny: () => (/* binding */ asyncRequireAny),
/* harmony export */   racePrioritizedAsyncTasks: () => (/* binding */ racePrioritizedAsyncTasks)
/* harmony export */ });
/**
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Defines async task.
 *
 * @since 1.142.0
 *
 * @typedef {Object} AsyncTask
 * @property {number}     priority          Priority of task – executed in ascending order.
 * @property {function(): Promise<boolean>} check Async function that resolves to a boolean. `true` if its checks pass, otherwise `false`.
 */

/**
 * Finds the highest priority task from a collection of tasks with async checks.
 *
 * @since 1.142.0
 *
 * @param {AsyncTask[]} tasks List of task objects.
 * @return {Promise<Object|null>} Promise that resolves to the highest priority task object which finishes its check first or `null` if no checks pass.
 */
async function racePrioritizedAsyncTasks(tasks) {
  // Group tasks by priority
  const priorityGroups = tasks.reduce((grouped, task) => {
    const priority = parseInt(task.priority, 10);
    grouped[priority] = grouped[priority] || [];
    grouped[priority].push(task.check().then(result => ({
      task,
      result: !!result
    })).catch(() => ({
      result: false
    })));
    return grouped;
  }, {});

  // Collect all given priorities in ascending order.
  const priorities = Object.keys(priorityGroups).sort((a, b) => a - b);

  // Process priority groups sequentially.
  for (const priority of priorities) {
    // Initialize a copy of the priority group to allow for mutation.
    let group = [...priorityGroups[priority]];
    do {
      const winner = await Promise.race(group);
      if (winner.result) {
        return winner.task;
      }

      // If we got here, then the fastest task's check did not pass.
      // Filter out all tasks with completed failed checks.
      for (const i in group) {
        const task = group[i];
        if ((await isPromiseResolved(task)) && false === (await task).result) {
          delete group[i];
        }
      }

      // Filter out empty elements for the next iteration.
      group = group.filter(e => e);
    } while (group.length);
    // Move on to the next priority group.
  }
  return null;
}

/**
 * Checks if the given promise is resolved.
 *
 * A resolved promise is either settled or rejected, but not pending.
 *
 * @since 1.144.0
 *
 * @param {Promise} promise Promise to test.
 * @return {boolean} True if resolved, otherwise false.
 */
async function isPromiseResolved(promise) {
  const CONTROL = 'SECRETVALUETHATNOPROMISESHOULDEVERRESOLVETO';
  // If the given value isn't a Promise, wrap it in one.
  if (!(promise instanceof Promise)) {
    promise = Promise.resolve(promise);
  }
  // Important: while Promise.race works with non-promises, it doesn't work
  // consistently in some environments with client-side instrumentation tooling.
  return CONTROL !== (await Promise.race([promise, Promise.resolve(CONTROL)]));
}

/**
 * Returns a function which can process N asynchronous requirements in sequence, stopping at the first to return false.
 *
 * @since 1.166.0
 *
 * @param {...Function} requirements Async requirement function checks.
 * @return {function(...Promise<boolean>[]): Promise<boolean>} Function which processes all requirements in sequence.
 */
function asyncRequireAll(...requirements) {
  return async function (...args) {
    for (const predicate of requirements) {
      if (false === (await predicate(...args))) {
        return false;
      }
    }
    return true;
  };
}

/**
 * Returns a function which can process N asynchronous requirements in sequence, stopping at the first to return true.
 *
 * If any predicates return true, it returns true, otherwise it returns false.
 *
 * @since 1.166.0
 *
 * @param {...Function} requirements Async requirement function checks.
 * @return {function(): Promise<boolean>} Function which processes all requirements in sequence.
 */
function asyncRequireAny(...requirements) {
  return async function (...args) {
    for (const predicate of requirements) {
      if (true === (await predicate(...args))) {
        return true;
      }
    }
    return false;
  };
}

/**
 * Returns a predicate function which proxies the given function and returns `true` only if the given function's return equals the given value.
 *
 * @since 1.166.0
 *
 * @param {*}        want Value to match against predicate return.
 * @param {Function} func Function to proxy and check return value of.
 * @return {function(): Promise<boolean>} Predicate function.
 */
function asyncRequire(want, func) {
  return async function (...args) {
    return want === (await func(...args));
  };
}

/***/ }),

/***/ "./js/util/case-insensitive-sort.js":
/*!******************************************!*\
  !*** ./js/util/case-insensitive-sort.js ***!
  \******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   caseInsensitiveListSort: () => (/* binding */ caseInsensitiveListSort)
/* harmony export */ });
/**
 * Sorting functions.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Sorts the provided list in a case-insensitive manner.
 *
 * @since 1.138.0
 *
 * @param {Array}  listToSort The list to sort (Array of objects or arrays).
 * @param {string} orderBy    The field by which the list should be ordered.
 * @return {Array} The sorted list.
 */
function caseInsensitiveListSort(listToSort, orderBy) {
  return [...listToSort].sort((a, b) => {
    const nameA = a[orderBy]?.toLowerCase() || '';
    const nameB = b[orderBy]?.toLowerCase() || '';
    return nameA.localeCompare(nameB);
  });
}

/***/ }),

/***/ "./js/util/chart.js":
/*!**************************!*\
  !*** ./js/util/chart.js ***!
  \**************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   calculateDifferenceBetweenChartValues: () => (/* binding */ calculateDifferenceBetweenChartValues),
/* harmony export */   getChartDifferenceArrow: () => (/* binding */ getChartDifferenceArrow),
/* harmony export */   isSingleSlice: () => (/* binding */ isSingleSlice)
/* harmony export */ });
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/@wordpress/element/build-module/serialize.js");
/* harmony import */ var _js_components_ChangeArrow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/components/ChangeArrow */ "./js/components/ChangeArrow.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * Utility functions for charts.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


/**
 * Gets the up/down SVG arrow for Google Chart tooltips.
 *
 * @since 1.30.0
 *
 * @param {number}  difference            The difference which can be positive or negative.
 * @param {string}  [options]             Options to be passed to the ChangeArrow component.
 * @param {boolean} [options.invertColor] Whether we need to reverse the +/- colors of the arrow.
 * @return {string} SVG for the +/- difference.
 */

function getChartDifferenceArrow(difference, options = {}) {
  if (Number.isNaN(Number(difference))) {
    return '';
  }
  const {
    invertColor = false
  } = options;
  return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__["default"])(/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(_js_components_ChangeArrow__WEBPACK_IMPORTED_MODULE_0__["default"], {
    direction: difference > 0 ? 'up' : 'down',
    invertColor: invertColor
  }));
}

/**
 * Checks if there is a single row of data or one row is contributing 100% of the total for a given dimension.
 *
 * @since 1.31.0
 *
 * @param {Array.<Object>} report An array of report data objects.
 * @return {(boolean|undefined)} Returns undefined if report is undefined, true/false for the above conditions.
 */
function isSingleSlice(report) {
  if (report === undefined) {
    return undefined;
  }
  if (report?.[0]?.data?.rows?.length === 1 || report?.[0]?.data?.rows?.[0]?.metrics?.[0]?.values?.[0] === report?.[0]?.data?.totals?.[0]?.values?.[0]) {
    return true;
  }
  return false;
}

/**
 * Calculates difference between two chart values.
 *
 * @since 1.48.0
 *
 * @param {number} currentValue  Current chart value.
 * @param {number} previousValue Previous chart value.
 * @return {number} The difference.
 */
function calculateDifferenceBetweenChartValues(currentValue, previousValue) {
  if (currentValue > 0 && previousValue > 0) {
    return currentValue / previousValue - 1;
  }
  if (currentValue > 0) {
    return 1;
  }
  if (previousValue > 0) {
    return -1;
  }
  return 0;
}

/***/ }),

/***/ "./js/util/convert-time.js":
/*!*********************************!*\
  !*** ./js/util/convert-time.js ***!
  \*********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   convertDateStringToUNIXTimestamp: () => (/* binding */ convertDateStringToUNIXTimestamp),
/* harmony export */   convertSecondsToArray: () => (/* binding */ convertSecondsToArray)
/* harmony export */ });
/**
 * Time related utility functions.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Converts seconds into an array with the following values [HH, MM, SS, MS] as described below.
 * HH: hours.
 * MM: minutes.
 * SS: seconds.
 * MS: milliseconds.
 *
 * For example, passing 196.385 returns [ 0, 3, 16, 385 ].
 *
 * @since 1.27.0
 *
 * @param {number} seconds The number of seconds.
 * @return {Array} Array containing the hours, minutes, seconds and milliseconds.
 */
function convertSecondsToArray(seconds) {
  seconds = parseFloat(seconds);
  if (isNaN(seconds) || 0 === seconds) {
    return [0, 0, 0, 0];
  }
  return [Math.floor(seconds / 60 / 60), Math.floor(seconds / 60 % 60), Math.floor(seconds % 60), Math.floor(seconds * 1000) - Math.floor(seconds) * 1000];
}

/**
 * Converts Date time string into UNIX timestamp in milliseconds.
 *
 * For example, passing "2014-10-02T15:01:23Z" returns 1412262083000.
 *
 * @since 1.116.0
 *
 * @param {string} dateStringValue The date time string.
 * @return {number} UNIX timestamp in milliseconds.
 */
function convertDateStringToUNIXTimestamp(dateStringValue) {
  const unixTimestamp = dateStringValue && !Number.isInteger(dateStringValue) ?
  // Valid use of `new Date()` with an argument, because this should only
  // be passed full time strings, not `YYYY-MM-DD` style dates.
  //
  // See: https://github.com/google/site-kit-wp/pull/9459#discussion_r1790660073
  // eslint-disable-next-line sitekit/no-direct-date
  new Date(dateStringValue).getTime() : dateStringValue;
  if (isNaN(unixTimestamp) || !unixTimestamp) {
    return 0;
  }
  return unixTimestamp;
}

/***/ }),

/***/ "./js/util/create-incremental-array-by-size.js":
/*!*****************************************************!*\
  !*** ./js/util/create-incremental-array-by-size.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   createIncrementalArrayBySize: () => (/* binding */ createIncrementalArrayBySize)
/* harmony export */ });
/**
 * Create Incremental Array by Size utility.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Creates an array of length equal to size with incremental values starting at 0.
 *
 * @since 1.28.0
 *
 * @param {number} size Array length.
 * @return {number[]} Array of incremental numbers.
 * @example createIncrementalArrayBySize(3); // [0, 1, 2]
 */
function createIncrementalArrayBySize(size) {
  return new Array(size !== null && size !== void 0 ? size : 0).fill().map((_, i) => i);
}

/***/ }),

/***/ "./js/util/dates.js":
/*!**************************!*\
  !*** ./js/util/dates.js ***!
  \**************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   DAY_IN_SECONDS: () => (/* binding */ DAY_IN_SECONDS),
/* harmony export */   HOUR_IN_SECONDS: () => (/* binding */ HOUR_IN_SECONDS),
/* harmony export */   INVALID_DATE_INSTANCE_ERROR: () => (/* binding */ INVALID_DATE_INSTANCE_ERROR),
/* harmony export */   INVALID_DATE_RANGE_ERROR: () => (/* binding */ INVALID_DATE_RANGE_ERROR),
/* harmony export */   INVALID_DATE_STRING_ERROR: () => (/* binding */ INVALID_DATE_STRING_ERROR),
/* harmony export */   MINUTE_IN_SECONDS: () => (/* binding */ MINUTE_IN_SECONDS),
/* harmony export */   MONTH_IN_SECONDS: () => (/* binding */ MONTH_IN_SECONDS),
/* harmony export */   WEEK_IN_SECONDS: () => (/* binding */ WEEK_IN_SECONDS),
/* harmony export */   dateSub: () => (/* binding */ dateSub),
/* harmony export */   getAvailableDateRanges: () => (/* binding */ getAvailableDateRanges),
/* harmony export */   getCurrentDateRangeDayCount: () => (/* binding */ getCurrentDateRangeDayCount),
/* harmony export */   getDateString: () => (/* binding */ getDateString),
/* harmony export */   getPreviousDate: () => (/* binding */ getPreviousDate),
/* harmony export */   isValidDateRange: () => (/* binding */ isValidDateRange),
/* harmony export */   isValidDateString: () => (/* binding */ isValidDateString),
/* harmony export */   stringToDate: () => (/* binding */ stringToDate)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);
/**
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */

const INVALID_DATE_INSTANCE_ERROR = 'Date param must construct to a valid date instance or be a valid date instance itself.';
const INVALID_DATE_STRING_ERROR = 'Invalid dateString parameter, it must be a string.';
const INVALID_DATE_RANGE_ERROR = 'Invalid date range, it must be a string with the format "last-x-days".';
const MINUTE_IN_SECONDS = 60;
const HOUR_IN_SECONDS = 60 * MINUTE_IN_SECONDS;
const DAY_IN_SECONDS = 24 * HOUR_IN_SECONDS;
const WEEK_IN_SECONDS = 7 * DAY_IN_SECONDS;
const MONTH_IN_SECONDS = 30 * DAY_IN_SECONDS;

/**
 * Gets the hash of available date ranges.
 *
 * @since 1.12.0
 *
 * @return {Object} The object hash where every key is a date range slug, and the value is an object with the date range slug and its translation.
 */
function getAvailableDateRanges() {
  function label(days) {
    return (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.sprintf)(/* translators: %s: number of days */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__._n)('Last %s day', 'Last %s days', days, 'google-site-kit'), days);
  }
  return {
    'last-7-days': {
      slug: 'last-7-days',
      label: label(7),
      days: 7
    },
    'last-14-days': {
      slug: 'last-14-days',
      label: label(14),
      days: 14
    },
    'last-28-days': {
      slug: 'last-28-days',
      label: label(28),
      days: 28
    },
    'last-90-days': {
      slug: 'last-90-days',
      label: label(90),
      days: 90
    }
  };
}

/**
 * Gets the current dateRange day count.
 *
 * @since 1.19.0
 * @since 1.26.0 `dateRange` is now a required argument.
 *
 * @param {string} dateRange The date range slug.
 * @return {number} The number of days in the range.
 */
function getCurrentDateRangeDayCount(dateRange) {
  const daysMatch = dateRange.match(/last-(\d+)-days/);
  if (daysMatch && daysMatch[1]) {
    return parseInt(daysMatch[1], 10);
  }
  throw new Error('Unrecognized date range slug.');
}

/**
 * Asserts whether a given date string is valid or invalid.
 *
 * @since 1.18.0
 *
 * @param {string} dateString Date string to be asserted against. Defaults to an empty string.
 * @return {boolean}          True if the given date string is valid.
 */
function isValidDateString(dateString = '') {
  if (!(0,lodash__WEBPACK_IMPORTED_MODULE_1__.isString)(dateString)) {
    return false;
  }
  const dateArray = dateString.split('-');
  if (dateArray.length !== 3) {
    return false;
  }

  // Valid use of `new Date()`, constructing a new date from the string.
  // eslint-disable-next-line sitekit/no-direct-date
  const date = new Date(dateString);
  return (0,lodash__WEBPACK_IMPORTED_MODULE_1__.isDate)(date) && !isNaN(date);
}

/**
 * Parses the given Date instance and returns a date string (YYYY-MM-DD).
 *
 * @since 1.18.0
 * @since 1.85.0 Updated the function signature to only accept a Date argument.
 *
 * @param {Date} date Date to parse into a string.
 * @return {string}                 The parsed date string (YYYY-MM-DD).
 */
function getDateString(date) {
  invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,lodash__WEBPACK_IMPORTED_MODULE_1__.isDate)(date) && !isNaN(date), INVALID_DATE_INSTANCE_ERROR);
  const month = `${date.getMonth() + 1}`;
  const day = `${date.getDate()}`;
  const year = date.getFullYear();
  return [year, month.length < 2 ? `0${month}` : month, day.length < 2 ? `0${day}` : day].join('-');
}

/**
 * Converts a valid date string to a Date instance.
 *
 * @since 1.38.0
 *
 * @param {string} dateString The date string to parse.
 * @return {Date} Date instance.
 */
function stringToDate(dateString) {
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(isValidDateString(dateString), INVALID_DATE_STRING_ERROR);

  /**
   * Split date into explicit parts rather than pass directly into date constructor
   * to avoid timezone issues caused by parsing as UTC. Ensures date is accurate for
   * the user's local time, otherwise has a chance to return a different day than was
   * passed in depending on timezone.
   */
  const [year, month, day] = dateString.split('-');
  return new Date(year, month - 1, day);
}

/**
 * Parses the given date and returns the previous date (daysBefore).
 *
 * @since 1.18.0
 *
 * @param {string} relativeDate Date string (YYYY-MM-DD) to subtract days from.
 * @param {number} daysBefore   Number of days to subtract from relativeDate.
 * @return {string}             The date string (YYYY-MM-DD) for the previous date.
 */
function getPreviousDate(relativeDate, daysBefore) {
  return getDateString(dateSub(relativeDate, daysBefore * DAY_IN_SECONDS));
}

/**
 * Asserts whether a given dateRange string is valid or invalid.
 *
 * @since 1.18.0
 *
 * @param {string} dateRange Date string to be asserted against. Defaults to an empty string.
 * @return {boolean}          True if the given dateRange string is valid.
 */
function isValidDateRange(dateRange) {
  const parts = dateRange.split('-');
  return parts.length === 3 && parts[0] === 'last' && !Number.isNaN(parts[1]) && !Number.isNaN(parseFloat(parts[1])) && parts[2] === 'days';
}

/**
 * Subtracts duration from the prodived date and returns it.
 *
 * @since 1.132.0
 *
 * @param {Date|string} relativeDate Date string (YYYY-MM-DD) or date object to subtract duration from.
 * @param {number}      duration     The duration in seconds to subtract from relativeDate.
 * @return {Date} Resulting date.
 */
function dateSub(relativeDate, duration) {
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(isValidDateString(relativeDate) || (0,lodash__WEBPACK_IMPORTED_MODULE_1__.isDate)(relativeDate) && !isNaN(relativeDate), INVALID_DATE_STRING_ERROR);
  const timestamp = isValidDateString(relativeDate) ? Date.parse(relativeDate) : relativeDate.getTime();

  // Valid use of `new Date()` using calculations.
  // eslint-disable-next-line sitekit/no-direct-date
  return new Date(timestamp - duration * 1000);
}

/***/ }),

/***/ "./js/util/errors.js":
/*!***************************!*\
  !*** ./js/util/errors.js ***!
  \***************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   ERROR_CODE_MISSING_REQUIRED_SCOPE: () => (/* binding */ ERROR_CODE_MISSING_REQUIRED_SCOPE),
/* harmony export */   ERROR_INTERNAL_SERVER_ERROR: () => (/* binding */ ERROR_INTERNAL_SERVER_ERROR),
/* harmony export */   ERROR_INVALID_JSON: () => (/* binding */ ERROR_INVALID_JSON),
/* harmony export */   ERROR_REASON_BAD_REQUEST: () => (/* binding */ ERROR_REASON_BAD_REQUEST),
/* harmony export */   ERROR_REASON_FORBIDDEN: () => (/* binding */ ERROR_REASON_FORBIDDEN),
/* harmony export */   ERROR_REASON_INSUFFICIENT_PERMISSIONS: () => (/* binding */ ERROR_REASON_INSUFFICIENT_PERMISSIONS),
/* harmony export */   getReportErrorMessage: () => (/* binding */ getReportErrorMessage),
/* harmony export */   isAuthError: () => (/* binding */ isAuthError),
/* harmony export */   isErrorRetryable: () => (/* binding */ isErrorRetryable),
/* harmony export */   isInsufficientPermissionsError: () => (/* binding */ isInsufficientPermissionsError),
/* harmony export */   isPermissionScopeError: () => (/* binding */ isPermissionScopeError),
/* harmony export */   isWPError: () => (/* binding */ isWPError)
/* harmony export */ });
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__);
/**
 * Error Utilities.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


// Error codes and reasons.
const ERROR_CODE_MISSING_REQUIRED_SCOPE = 'missing_required_scopes'; // When scopes are missing.
const ERROR_REASON_INSUFFICIENT_PERMISSIONS = 'insufficientPermissions';
const ERROR_REASON_FORBIDDEN = 'forbidden';
const ERROR_INTERNAL_SERVER_ERROR = 'internal_server_error';
const ERROR_INVALID_JSON = 'invalid_json';
const ERROR_REASON_BAD_REQUEST = 'bad_request';

/**
 * Checks if the provided object is an instance of WP_Error class.
 *
 * @since 1.13.0
 *
 * @param {Object} obj The object to check.
 * @return {boolean} TRUE if the object has "code", "data" and "message" properties, otherwise FALSE.
 */
function isWPError(obj) {
  return (0,lodash__WEBPACK_IMPORTED_MODULE_0__.isPlainObject)(obj) && obj.hasOwnProperty('code') && (typeof obj.code === 'string' || typeof obj.code === 'number') && obj.hasOwnProperty('message') && typeof obj.message === 'string' && obj.hasOwnProperty('data'); // We don't check "obj.data" type because it can be anything.
}

/**
 * Checks if the given error is a permission scope error.
 *
 * @since 1.9.0
 * @private
 *
 * @param {Object} error Input to test as a possible permission scope error.
 * @return {boolean} TRUE if permission scope error, otherwise FALSE.
 */
function isPermissionScopeError(error) {
  return error?.code === ERROR_CODE_MISSING_REQUIRED_SCOPE;
}

/**
 * Checks if the given error has insufficient permissions reason.
 *
 * @since 1.16.0
 * @since 1.70.0 Add support for "forbidden" reason.
 *
 * @param {Object} error The error object to check.
 * @return {boolean} TRUE if it's insufficient permissions error, otherwise FALSE.
 */
function isInsufficientPermissionsError(error) {
  return [ERROR_REASON_INSUFFICIENT_PERMISSIONS, ERROR_REASON_FORBIDDEN].includes(error?.data?.reason);
}

/**
 * Checks if the given error is an auth error.
 *
 * @since 1.78.0
 *
 * @param {Object} error The error object to check.
 * @return {boolean} TRUE if it's an auth error, otherwise FALSE.
 */
function isAuthError(error) {
  return !!error?.data?.reconnectURL;
}

/**
 * Checks if the given error can be retried.
 *
 * @since 1.86.0
 *
 * @param {Object} error          The error object to check.
 * @param {Object} [selectorData] The error's associated selector data object.
 * @return {boolean} TRUE if the error is retryable, otherwise FALSE.
 */
function isErrorRetryable(error, selectorData) {
  return !!selectorData?.storeName && !isInsufficientPermissionsError(error) && !isPermissionScopeError(error) && !isAuthError(error);
}

/**
 * Sets the error message for specific error codes.
 *
 * @since 1.92.0
 *
 * @param {Object} error The error object to check.
 * @return {Object} The updated error object.
 */
function getReportErrorMessage(error) {
  if (error?.code === ERROR_INTERNAL_SERVER_ERROR) {
    return (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('There was a critical error on this website while fetching data', 'google-site-kit');
  } else if (error?.code === ERROR_INVALID_JSON) {
    return (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('The server provided an invalid response', 'google-site-kit');
  }
  return error?.message;
}

/***/ }),

/***/ "./js/util/escape-uri.ts":
/*!*******************************!*\
  !*** ./js/util/escape-uri.ts ***!
  \*******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   escapeURI: () => (/* binding */ escapeURI)
/* harmony export */ });
/**
 * Escape URI components utility.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Escapes URI components in a template string as a tag function.
 *
 * @example
 * ```
 * // Escape a redirect url:
 * const redirectTo = 'http://localhost/admin/';
 * const loginUrl = escapeURI`http://localhost/login?redirect=${ redirectTo }`;
 * ```
 * @since 1.11.0
 *
 * @param strings The array of static strings in the template.
 * @param values  The array of expressions used in the template.
 * @return The escaped URI.
 */
function escapeURI(
/**
 * The array of static strings in the template.
 */
strings,
/**
 * The array of expressions used in the template.
 */
...values) {
  return strings.reduce((acc, string, idx) => {
    return acc + string + encodeURIComponent(values[idx] || '');
  }, '');
}

/***/ }),

/***/ "./js/util/finite-number-or-zero.js":
/*!******************************************!*\
  !*** ./js/util/finite-number-or-zero.js ***!
  \******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   finiteNumberOrZero: () => (/* binding */ finiteNumberOrZero)
/* harmony export */ });
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/**
 * Utility function `finiteNumberOrZero()`.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Returns the passed value if it's a finite number, otherwise returns 0.
 *
 * @since 1.98.0
 *
 * @param {any} value The value to check.
 * @return {number} The finite number `value`, or 0 if `value` is not a finite number.
 */
function finiteNumberOrZero(value) {
  return (0,lodash__WEBPACK_IMPORTED_MODULE_0__.isFinite)(value) ? value : 0;
}

/***/ }),

/***/ "./js/util/geometry.js":
/*!*****************************!*\
  !*** ./js/util/geometry.js ***!
  \*****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   elementsOverlap: () => (/* binding */ elementsOverlap)
/* harmony export */ });
/**
 * Geometry related utility functions.
 *
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Checks if one element overlaps another.
 *
 * @since 1.114.0
 *
 * @param {Element} element1 The first element.
 * @param {Element} element2 The second element.
 * @return {boolean} Returns if the first and second elements overlap each other.
 */
function elementsOverlap(element1, element2) {
  const rect1 = element1.getBoundingClientRect();
  const rect2 = element2.getBoundingClientRect();
  if (rect1.bottom < rect2.top || rect2.bottom < rect1.top || rect1.right < rect2.left || rect2.right < rect1.left) {
    return false;
  }
  return true;
}

/***/ }),

/***/ "./js/util/i18n.js":
/*!*************************!*\
  !*** ./js/util/i18n.js ***!
  \*************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   createDurationFormat: () => (/* binding */ createDurationFormat),
/* harmony export */   expandNumFmtOptions: () => (/* binding */ expandNumFmtOptions),
/* harmony export */   getLocale: () => (/* binding */ getLocale),
/* harmony export */   listFormat: () => (/* binding */ listFormat),
/* harmony export */   numFmt: () => (/* binding */ numFmt),
/* harmony export */   numberFormat: () => (/* binding */ numberFormat),
/* harmony export */   prepareForReadableLargeNumber: () => (/* binding */ prepareForReadableLargeNumber),
/* harmony export */   readableLargeNumber: () => (/* binding */ readableLargeNumber)
/* harmony export */ });
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! memize */ "../node_modules/memize/index.js");
/* harmony import */ var memize__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(memize__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__);
/**
 * Internationalization Utilities.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Converts seconds to a display ready string indicating
 * the number of hours, minutes and seconds that have elapsed.
 *
 * For example, passing 65 returns '1m 5s'.
 *
 * @since 1.0.0
 * @since 1.28.0 Refactored and renamed to improve localization.
 * @private
 *
 * @param {number}                     durationInSeconds The number of seconds.
 * @param {(Intl.NumberFormatOptions)} [options]         Optional formatting options.
 * @return {string} Human readable string indicating time elapsed.
 */
function durationFormat(durationInSeconds, options = {}) {
  const {
    formatUnit,
    formatDecimal
  } = createDurationFormat(durationInSeconds, options);
  try {
    // Some browsers, e.g. Safari, throw a RangeError when options.style is
    // not one of decimal, percent, or currency.
    return formatUnit();
  } catch {
    // Fallback to XXh YYm ZZs using localized decimals with hardcoded units.
    return formatDecimal();
  }
}

/**
 * Converts seconds to a display ready string indicating
 * the number of hours, minutes and seconds that have elapsed
 * in ISO format - HH:mm:ss.
 *
 * If the duration is less than an hour, the HH part of the string
 * is truncated.
 * For example, passing 65 returns '01:05'.
 * Passing 5400 returns '01:30:00'.
 *
 * @since 1.111.0
 * @private
 *
 * @param {number} durationInSeconds The number of seconds.
 * @return {string} Human readable string indicating time elapsed.
 */
function durationISOFormat(durationInSeconds) {
  let {
    hours,
    minutes,
    seconds
  } = parseDuration(durationInSeconds);
  seconds = ('0' + seconds).slice(-2);
  minutes = ('0' + minutes).slice(-2);
  hours = ('0' + hours).slice(-2);
  return hours === '00' ? `${minutes}:${seconds}` : `${hours}:${minutes}:${seconds}`;
}

/**
 * Parses the duration in seconds into hours, minutes and seconds.
 *
 * @since 1.111.0
 * @private
 *
 * @param {number} durationInSeconds The number of seconds.
 * @return {Object} Number of hours, minutes and seconds equivalent
 * to the given duration in seconds.
 */
function parseDuration(durationInSeconds) {
  durationInSeconds = parseInt(durationInSeconds, 10);
  if (Number.isNaN(durationInSeconds)) {
    durationInSeconds = 0;
  }
  const hours = Math.floor(durationInSeconds / 60 / 60);
  const minutes = Math.floor(durationInSeconds / 60 % 60);
  const seconds = Math.floor(durationInSeconds % 60);
  return {
    hours,
    minutes,
    seconds
  };
}

/**
 * Creates duration formatting utilities.
 *
 * Not intended to be used directly.
 * Use `numFmt( number, { style: 'duration' } )` instead.
 *
 * @since 1.29.0
 * @private
 *
 * @param {number} durationInSeconds Duration to format.
 * @param {Object} [options]         Formatting options.
 * @return {Object} Formatting functions.
 */
function createDurationFormat(durationInSeconds, options = {}) {
  const {
    hours,
    minutes,
    seconds
  } = parseDuration(durationInSeconds);
  return {
    hours,
    minutes,
    seconds,
    formatUnit() {
      const {
        unitDisplay = 'short',
        ...restOptions
      } = options;
      const commonOptions = {
        unitDisplay,
        ...restOptions,
        style: 'unit'
      };
      if (durationInSeconds === 0) {
        return numberFormat(seconds, {
          ...commonOptions,
          unit: 'second'
        });
      }
      return (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.sprintf)(/* translators: 1: formatted seconds, 2: formatted minutes, 3: formatted hours */
      (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__._x)('%3$s %2$s %1$s', 'duration of time: hh mm ss', 'google-site-kit'), seconds ? numberFormat(seconds, {
        ...commonOptions,
        unit: 'second'
      }) : '', minutes ? numberFormat(minutes, {
        ...commonOptions,
        unit: 'minute'
      }) : '', hours ? numberFormat(hours, {
        ...commonOptions,
        unit: 'hour'
      }) : '').trim();
    },
    /**
     * Formats the duration using integers and translatable strings.
     * This is only used as a fallback when the above `formatUnit` fails.
     *
     * @since 1.29.0
     *
     * @return {string} Formatted duration.
     */
    formatDecimal() {
      const formattedSeconds = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.sprintf)(
      // translators: %s: number of seconds with "s" as the abbreviated unit.
      (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('%ds', 'google-site-kit'), seconds);
      if (durationInSeconds === 0) {
        return formattedSeconds;
      }
      const formattedMinutes = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.sprintf)(
      // translators: %s: number of minutes with "m" as the abbreviated unit.
      (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('%dm', 'google-site-kit'), minutes);
      const formattedHours = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.sprintf)(
      // translators: %s: number of hours with "h" as the abbreviated unit.
      (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('%dh', 'google-site-kit'), hours);
      return (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.sprintf)(/* translators: 1: formatted seconds, 2: formatted minutes, 3: formatted hours */
      (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__._x)('%3$s %2$s %1$s', 'duration of time: hh mm ss', 'google-site-kit'), seconds ? formattedSeconds : '', minutes ? formattedMinutes : '', hours ? formattedHours : '').trim();
    }
  };
}

/**
 * Prepares a number to be used in readableLargeNumber.
 *
 * @since 1.7.0
 *
 * @param {number} number The large number to prepare.
 * @return {number} The prepared number.
 */
function prepareForReadableLargeNumber(number) {
  if (1000000 <= number) {
    return Math.round(number / 100000) / 10;
  }
  if (10000 <= number) {
    return Math.round(number / 1000);
  }
  if (1000 <= number) {
    return Math.round(number / 100) / 10;
  }
  return number;
}

/**
 * Formats a large number for shortened display.
 *
 * @since 1.0.0
 *
 * @param {number} number The large number to format.
 * @return {string} The formatted number.
 */
function readableLargeNumber(number) {
  const withSingleDecimal = {
    minimumFractionDigits: 1,
    maximumFractionDigits: 1
  };

  // Numbers over 1,000,000 round normally and display a single decimal unless the decimal is 0.
  if (1000000 <= number) {
    return (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.sprintf)(
    // translators: %s: an abbreviated number in millions.
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('%sM', 'google-site-kit'), numberFormat(prepareForReadableLargeNumber(number), number % 10 === 0 ? {} : withSingleDecimal));
  }

  // Numbers between 10,000 and 1,000,000 round normally and have no decimals
  if (10000 <= number) {
    return (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.sprintf)(
    // translators: %s: an abbreviated number in thousands.
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('%sK', 'google-site-kit'), numberFormat(prepareForReadableLargeNumber(number)));
  }

  // Numbers between 1,000 and 10,000 round normally and display a single decimal unless the decimal is 0.
  if (1000 <= number) {
    return (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.sprintf)(
    // translators: %s: an abbreviated number in thousands.
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)('%sK', 'google-site-kit'), numberFormat(prepareForReadableLargeNumber(number), number % 10 === 0 ? {} : withSingleDecimal));
  }
  return numberFormat(number, {
    signDisplay: 'never',
    maximumFractionDigits: 1
  });
}

/**
 * Parses formatting options and returns an object with options for selected formatting.
 *
 * @since 1.103.0
 *
 * @param {(Intl.NumberFormatOptions|string)} options Formatting options or unit shorthand. Possible shorthand values are '%', 's', or a currency code.
 * @return {Object} Formatting options.
 */
function expandNumFmtOptions(options) {
  let formatOptions = {};

  // Expand shorthand values for units.
  if ('%' === options) {
    formatOptions = {
      style: 'percent',
      maximumFractionDigits: 2
    };
  } else if ('s' === options) {
    formatOptions = {
      style: 'duration',
      unitDisplay: 'narrow'
    };
  } else if (!!options && typeof options === 'string') {
    formatOptions = {
      style: 'currency',
      currency: options
    };
  } else if ((0,lodash__WEBPACK_IMPORTED_MODULE_0__.isPlainObject)(options)) {
    formatOptions = {
      ...options
    };
  }
  return formatOptions;
}

/**
 * Formats a number with unit using the JS Internationalization Number Format API.
 *
 * In addition to the supported 'style' values of the lower-level `numberFormat` function, this function
 * supports two additional 'style' values 'metric' and 'duration' (expects a number in seconds).
 *
 * Another differentiation in behavior is that by default the function will use 'metric' formatting instead
 * of 'decimal' formatting.
 *
 * @since 1.24.0
 *
 * @param {number|string}                     number    The number to format.
 * @param {(Intl.NumberFormatOptions|string)} [options] Formatting options or unit shorthand.
 *                                                      Possible shorthand values are '%', 's',
 *                                                      or a currency code.
 * @return {string} The formatted number.
 */
function numFmt(number, options = {}) {
  // Cast parsable values to numeric types.
  number = (0,lodash__WEBPACK_IMPORTED_MODULE_0__.isFinite)(number) ? number : Number(number);
  if (!(0,lodash__WEBPACK_IMPORTED_MODULE_0__.isFinite)(number)) {
    // eslint-disable-next-line no-console
    console.warn('Invalid number', number, typeof number);
    number = 0;
  }
  const formatOptions = expandNumFmtOptions(options);
  const {
    style = 'metric'
  } = formatOptions; // Note: `metric` is our custom, default style.

  if ('metric' === style) {
    return readableLargeNumber(number);
  }
  if ('duration' === style) {
    return durationFormat(number, formatOptions);
  }
  if ('durationISO' === style) {
    return durationISOFormat(number);
  }
  return numberFormat(number, formatOptions);
}

// Warn once for a given message.
const warnOnce = memize__WEBPACK_IMPORTED_MODULE_1___default()(console.warn); // eslint-disable-line no-console

/**
 * Formats a number using the JS Internationalization Number Format API.
 *
 * @since 1.8.0
 * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat/NumberFormat|`options` parameter} For all available formatting options.
 *
 * @param {number}                   number           The number to format.
 * @param {Intl.NumberFormatOptions} [options]        Formatting options.
 * @param {string}                   [options.locale] Locale to use for formatting. Defaults to current locale used by Site Kit.
 * @return {string} The formatted number.
 */
function numberFormat(number, options = {}) {
  const {
    locale = getLocale(),
    ...formatOptions
  } = options;
  try {
    /**
     * Per https://github.com/google/site-kit-wp/issues/3255 there have been issues with some versions of Safari
     * on some operating systems throwing issues with some parameters in the formatOptions.
     *
     * If an error is thrown, we remove some troublesome params from the formatOptions object and fallback to no formatting.
     *
     * This allows us to degrade somewhat gracefully without breaking the dashboard for users of unaffected browsers.
     */
    return new Intl.NumberFormat(locale, formatOptions).format(number);
  } catch (error) {
    warnOnce(`Site Kit numberFormat error: Intl.NumberFormat( ${JSON.stringify(locale)}, ${JSON.stringify(formatOptions)} ).format( ${typeof number} )`, error.message);
  }

  // Remove these key/values from formatOptions.
  const unstableFormatOptionValues = {
    currencyDisplay: 'narrow',
    currencySign: 'accounting',
    style: 'unit'
  };

  // Remove these keys from formatOptions irrespective of value.
  const unstableFormatOptions = ['signDisplay', 'compactDisplay'];
  const reducedFormatOptions = {};
  for (const [key, value] of Object.entries(formatOptions)) {
    if (unstableFormatOptionValues[key] && value === unstableFormatOptionValues[key]) {
      continue;
    }
    if (unstableFormatOptions.includes(key)) {
      continue;
    }
    reducedFormatOptions[key] = value;
  }
  try {
    return new Intl.NumberFormat(locale, reducedFormatOptions).format(number);
  } catch {
    return new Intl.NumberFormat(locale).format(number);
  }
}

/**
 * Flattens an array of strings into a string using the JS Internationalization List Format API.
 *
 * @since 1.23.0
 * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat|`options` parameter} For all available options.
 *
 * @param {Array}  list             The list to flatten.
 * @param {Object} [options]        Formatting options.
 * @param {string} [options.locale] Locale to use for formatting. Defaults to current locale used by Site Kit.
 * @param {string} [options.style]  Length of the formatted message. Defaults to long.
 * @param {string} [options.type]   Type of list. Defaults to 'conjunction' (A, B, and C).
 *                                  Also available 'disjunction' (A, B, or C)
 *                                  Also available 'unit' (5 pounds, 12 ounces)
 * @return {string} The flattened list.
 */
function listFormat(list, options = {}) {
  const {
    locale = getLocale(),
    style = 'long',
    type = 'conjunction'
  } = options;

  // Not all browsers support Intl.Listformat per
  // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/ListFormat/ListFormat#Browser_compatibility
  // We've seen that the built versions don't polyfill for the unsupported browsers (iOS/safari) so we provide a fallback.
  if (Intl.ListFormat) {
    const formatter = new Intl.ListFormat(locale, {
      style,
      type
    });
    return formatter.format(list);
  }

  /* translators: used between list items, there is a space after the comma. */
  const listSeparator = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_2__.__)(', ', 'google-site-kit');
  return list.join(listSeparator);
}

/**
 * Gets the current locale for use with browser APIs.
 *
 * @since 1.8.0
 *
 * @param {Object} _global The global window object.
 * @return {string} Current Site Kit locale if set, otherwise the current language set by the browser.
 *                  E.g. `en-US` or `de-DE`
 */
function getLocale(_global = __webpack_require__.g) {
  const siteKitLocale = (0,lodash__WEBPACK_IMPORTED_MODULE_0__.get)(_global, ['_googlesitekitLegacyData', 'locale']);
  if (siteKitLocale) {
    const matches = siteKitLocale.match(/^(\w{2})?(_)?(\w{2})/);
    if (matches && matches[0]) {
      return matches[0].replace(/_/g, '-');
    }
  }
  return _global.navigator.language;
}

/***/ }),

/***/ "./js/util/index.js":
/*!**************************!*\
  !*** ./js/util/index.js ***!
  \**************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   DAY_IN_SECONDS: () => (/* reexport safe */ _dates__WEBPACK_IMPORTED_MODULE_8__.DAY_IN_SECONDS),
/* harmony export */   HOUR_IN_SECONDS: () => (/* reexport safe */ _dates__WEBPACK_IMPORTED_MODULE_8__.HOUR_IN_SECONDS),
/* harmony export */   INVALID_DATE_INSTANCE_ERROR: () => (/* reexport safe */ _dates__WEBPACK_IMPORTED_MODULE_8__.INVALID_DATE_INSTANCE_ERROR),
/* harmony export */   INVALID_DATE_RANGE_ERROR: () => (/* reexport safe */ _dates__WEBPACK_IMPORTED_MODULE_8__.INVALID_DATE_RANGE_ERROR),
/* harmony export */   INVALID_DATE_STRING_ERROR: () => (/* reexport safe */ _dates__WEBPACK_IMPORTED_MODULE_8__.INVALID_DATE_STRING_ERROR),
/* harmony export */   MINUTE_IN_SECONDS: () => (/* reexport safe */ _dates__WEBPACK_IMPORTED_MODULE_8__.MINUTE_IN_SECONDS),
/* harmony export */   MONTH_IN_SECONDS: () => (/* reexport safe */ _dates__WEBPACK_IMPORTED_MODULE_8__.MONTH_IN_SECONDS),
/* harmony export */   WEEK_IN_SECONDS: () => (/* reexport safe */ _dates__WEBPACK_IMPORTED_MODULE_8__.WEEK_IN_SECONDS),
/* harmony export */   calculateChange: () => (/* binding */ calculateChange),
/* harmony export */   calculateDifferenceBetweenChartValues: () => (/* reexport safe */ _chart__WEBPACK_IMPORTED_MODULE_9__.calculateDifferenceBetweenChartValues),
/* harmony export */   convertDateStringToUNIXTimestamp: () => (/* reexport safe */ _convert_time__WEBPACK_IMPORTED_MODULE_7__.convertDateStringToUNIXTimestamp),
/* harmony export */   convertSecondsToArray: () => (/* reexport safe */ _convert_time__WEBPACK_IMPORTED_MODULE_7__.convertSecondsToArray),
/* harmony export */   createDurationFormat: () => (/* reexport safe */ _i18n__WEBPACK_IMPORTED_MODULE_5__.createDurationFormat),
/* harmony export */   dateSub: () => (/* reexport safe */ _dates__WEBPACK_IMPORTED_MODULE_8__.dateSub),
/* harmony export */   decodeHTMLEntity: () => (/* binding */ decodeHTMLEntity),
/* harmony export */   expandNumFmtOptions: () => (/* reexport safe */ _i18n__WEBPACK_IMPORTED_MODULE_5__.expandNumFmtOptions),
/* harmony export */   getAvailableDateRanges: () => (/* reexport safe */ _dates__WEBPACK_IMPORTED_MODULE_8__.getAvailableDateRanges),
/* harmony export */   getChartDifferenceArrow: () => (/* reexport safe */ _chart__WEBPACK_IMPORTED_MODULE_9__.getChartDifferenceArrow),
/* harmony export */   getCurrentDateRangeDayCount: () => (/* reexport safe */ _dates__WEBPACK_IMPORTED_MODULE_8__.getCurrentDateRangeDayCount),
/* harmony export */   getDateString: () => (/* reexport safe */ _dates__WEBPACK_IMPORTED_MODULE_8__.getDateString),
/* harmony export */   getFullURL: () => (/* reexport safe */ _urls__WEBPACK_IMPORTED_MODULE_10__.getFullURL),
/* harmony export */   getLocale: () => (/* reexport safe */ _i18n__WEBPACK_IMPORTED_MODULE_5__.getLocale),
/* harmony export */   getPreviousDate: () => (/* reexport safe */ _dates__WEBPACK_IMPORTED_MODULE_8__.getPreviousDate),
/* harmony export */   getStorage: () => (/* reexport safe */ _storage__WEBPACK_IMPORTED_MODULE_4__.getStorage),
/* harmony export */   getURLPath: () => (/* reexport safe */ _urls__WEBPACK_IMPORTED_MODULE_10__.getURLPath),
/* harmony export */   isHashOnly: () => (/* reexport safe */ _urls__WEBPACK_IMPORTED_MODULE_10__.isHashOnly),
/* harmony export */   isNumeric: () => (/* reexport safe */ _isnumeric__WEBPACK_IMPORTED_MODULE_12__.isNumeric),
/* harmony export */   isSingleSlice: () => (/* reexport safe */ _chart__WEBPACK_IMPORTED_MODULE_9__.isSingleSlice),
/* harmony export */   isValidDateRange: () => (/* reexport safe */ _dates__WEBPACK_IMPORTED_MODULE_8__.isValidDateRange),
/* harmony export */   isValidDateString: () => (/* reexport safe */ _dates__WEBPACK_IMPORTED_MODULE_8__.isValidDateString),
/* harmony export */   isValidNumericID: () => (/* reexport safe */ _is_valid_numeric_id__WEBPACK_IMPORTED_MODULE_11__.isValidNumericID),
/* harmony export */   listFormat: () => (/* reexport safe */ _i18n__WEBPACK_IMPORTED_MODULE_5__.listFormat),
/* harmony export */   markdownToHTML: () => (/* reexport safe */ _markdown__WEBPACK_IMPORTED_MODULE_6__.markdownToHTML),
/* harmony export */   normalizeURL: () => (/* reexport safe */ _urls__WEBPACK_IMPORTED_MODULE_10__.normalizeURL),
/* harmony export */   numFmt: () => (/* reexport safe */ _i18n__WEBPACK_IMPORTED_MODULE_5__.numFmt),
/* harmony export */   numberFormat: () => (/* reexport safe */ _i18n__WEBPACK_IMPORTED_MODULE_5__.numberFormat),
/* harmony export */   partitionReport: () => (/* reexport safe */ _partition_report__WEBPACK_IMPORTED_MODULE_14__.partitionReport),
/* harmony export */   prepareForReadableLargeNumber: () => (/* reexport safe */ _i18n__WEBPACK_IMPORTED_MODULE_5__.prepareForReadableLargeNumber),
/* harmony export */   readableLargeNumber: () => (/* reexport safe */ _i18n__WEBPACK_IMPORTED_MODULE_5__.readableLargeNumber),
/* harmony export */   safelySort: () => (/* reexport safe */ _safely_sort__WEBPACK_IMPORTED_MODULE_13__.safelySort),
/* harmony export */   sanitizeHTML: () => (/* reexport safe */ _sanitize__WEBPACK_IMPORTED_MODULE_2__.sanitizeHTML),
/* harmony export */   shortenURL: () => (/* reexport safe */ _urls__WEBPACK_IMPORTED_MODULE_10__.shortenURL),
/* harmony export */   storageAvailable: () => (/* reexport safe */ _storage__WEBPACK_IMPORTED_MODULE_4__.storageAvailable),
/* harmony export */   stringToDate: () => (/* reexport safe */ _dates__WEBPACK_IMPORTED_MODULE_8__.stringToDate),
/* harmony export */   stringifyObject: () => (/* reexport safe */ _stringify__WEBPACK_IMPORTED_MODULE_3__.stringifyObject),
/* harmony export */   trackEvent: () => (/* reexport safe */ _tracking__WEBPACK_IMPORTED_MODULE_1__.trackEvent),
/* harmony export */   trackEventOnce: () => (/* reexport safe */ _tracking__WEBPACK_IMPORTED_MODULE_1__.trackEventOnce),
/* harmony export */   untrailingslashit: () => (/* reexport safe */ _sanitize__WEBPACK_IMPORTED_MODULE_2__.untrailingslashit),
/* harmony export */   validateJSON: () => (/* binding */ validateJSON)
/* harmony export */ });
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _tracking__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tracking */ "./js/util/tracking/index.js");
/* harmony import */ var _sanitize__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sanitize */ "./js/util/sanitize.js");
/* harmony import */ var _stringify__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./stringify */ "./js/util/stringify.js");
/* harmony import */ var _storage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./storage */ "./js/util/storage.js");
/* harmony import */ var _i18n__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./i18n */ "./js/util/i18n.js");
/* harmony import */ var _markdown__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./markdown */ "./js/util/markdown.js");
/* harmony import */ var _convert_time__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./convert-time */ "./js/util/convert-time.js");
/* harmony import */ var _dates__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./dates */ "./js/util/dates.js");
/* harmony import */ var _chart__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./chart */ "./js/util/chart.js");
/* harmony import */ var _urls__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./urls */ "./js/util/urls.js");
/* harmony import */ var _is_valid_numeric_id__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./is-valid-numeric-id */ "./js/util/is-valid-numeric-id.js");
/* harmony import */ var _isnumeric__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./isnumeric */ "./js/util/isnumeric.js");
/* harmony import */ var _safely_sort__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./safely-sort */ "./js/util/safely-sort.js");
/* harmony import */ var _partition_report__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./partition-report */ "./js/util/partition-report.js");
/**
 * Utility functions.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */
















/**
 * Calculates the change between two values.
 *
 * @since 1.24.0
 *
 * @param {number} previous The previous value.
 * @param {number} current  The current value.
 * @return {(number|null)} The percent change. Null if the input or output is invalid.
 */
function calculateChange(previous, current) {
  function isZero(value) {
    return value === '0' || value === 0;
  }

  // Prevent null result when both values are legitimately zero.
  if (isZero(previous) && isZero(current)) {
    return 0;
  }

  // Prevent divide by zero errors.
  if (isZero(previous) || Number.isNaN(previous)) {
    return null;
  }

  // Avoid NaN at all costs.
  const change = (current - previous) / previous;
  if (Number.isNaN(change) || !Number.isFinite(change)) {
    return null;
  }
  return change;
}

/**
 * Verifies whether JSON is valid.
 *
 * @since 1.0.0
 *
 * @param {string} stringToValidate The string to validate.
 * @return {boolean} Indicates JSON is valid.
 */
function validateJSON(stringToValidate) {
  try {
    return JSON.parse(stringToValidate) && !!stringToValidate;
  } catch (e) {
    return false;
  }
}

/**
 * Converts HTML text into an HTML entity.
 *
 * _.unescape doesn't seem to decode some entities for admin bar titles.
 * adding combination in this helper as a workaround.
 *
 * @since 1.0.0
 *
 * @param {string} str The string to decode.
 * @return {string} Decoded HTML entity.
 */
function decodeHTMLEntity(str) {
  if (!str) {
    return '';
  }
  const decoded = str.replace(/&#(\d+);/g, (match, dec) => {
    return String.fromCharCode(dec);
  }).replace(/(\\)/g, '');
  return (0,lodash__WEBPACK_IMPORTED_MODULE_0__.unescape)(decoded);
}

/***/ }),

/***/ "./js/util/initialize-google-global.js":
/*!*********************************************!*\
  !*** ./js/util/initialize-google-global.js ***!
  \*********************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {

/**
 * Side Effect to initialize `google` global.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

if (!Object.prototype.hasOwnProperty.call(__webpack_require__.g, 'google')) {
  __webpack_require__.g.google = {};
}

/***/ }),

/***/ "./js/util/insufficient-permissions-error-description.js":
/*!***************************************************************!*\
  !*** ./js/util/insufficient-permissions-error-description.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   getInsufficientPermissionsErrorDescription: () => (/* binding */ getInsufficientPermissionsErrorDescription)
/* harmony export */ });
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n");
/* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_modules_search_console_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/modules/search-console/constants */ "./js/modules/search-console/constants.js");
/* harmony import */ var _js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/modules/analytics-4/constants */ "./js/modules/analytics-4/constants.js");
/**
 * `getInsufficientPermissionsErrorDescription` function.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */




/**
 * Gets a description for an insufficient permissions error.
 *
 * @since 1.16.0
 *
 * @param {string} error              Original error message.
 * @param {Object} module             Module data.
 * @param {string} module.name        The name of the module.
 * @param {string} module.slug        The slug of the module.
 * @param {Object} module.owner       The owner of the module.
 * @param {string} module.owner.login The The login of the current owner.
 * @return {string}                   Error description.
 */
function getInsufficientPermissionsErrorDescription(error = '', module = {}) {
  const {
    slug = '',
    name = '',
    owner = {}
  } = module || {};

  // If no module data provided, it is impossible to provide a more clear message.
  if (!slug || !name) {
    return error;
  }
  let message = '';
  let userInfo = '';
  if (_js_modules_analytics_4_constants__WEBPACK_IMPORTED_MODULE_2__.MODULE_SLUG_ANALYTICS_4 === slug) {
    if (error.match(/account/i)) {
      message = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Your Google account does not have sufficient permissions for this Analytics account, so you won’t be able to see stats from it on the Site Kit dashboard.', 'google-site-kit');
    } else if (error.match(/property/i)) {
      message = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Your Google account does not have sufficient permissions for this Analytics property, so you won’t be able to see stats from it on the Site Kit dashboard.', 'google-site-kit');
    } else if (error.match(/view/i)) {
      message = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Your Google account does not have sufficient permissions for this Analytics view, so you won’t be able to see stats from it on the Site Kit dashboard.', 'google-site-kit');
    }
  } else if (_js_modules_search_console_constants__WEBPACK_IMPORTED_MODULE_1__.MODULE_SLUG_SEARCH_CONSOLE === slug) {
    message = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Your Google account does not have sufficient permissions for this Search Console property, so you won’t be able to see stats from it on the Site Kit dashboard.', 'google-site-kit');
  }
  if (!message) {
    message = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: module name */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('Your Google account does not have sufficient permissions to access %s data, so you won’t be able to see stats from it on the Site Kit dashboard.', 'google-site-kit'), name);
  }
  if (owner && owner.login) {
    userInfo = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.sprintf)(/* translators: %s: owner name */
    (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('This service was originally connected by the administrator "%s" — you can contact them for more information.', 'google-site-kit'), owner.login);
  }
  if (!userInfo) {
    userInfo = (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_0__.__)('This service was originally connected by an administrator — you can contact them for more information.', 'google-site-kit');
  }
  return `${message} ${userInfo}`;
}

/***/ }),

/***/ "./js/util/is-site-kit-screen.js":
/*!***************************************!*\
  !*** ./js/util/is-site-kit-screen.js ***!
  \***************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   isSiteKitScreen: () => (/* binding */ isSiteKitScreen)
/* harmony export */ });
/* harmony import */ var _js_googlesitekit_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/googlesitekit/constants */ "./js/googlesitekit/constants.js");
/**
 * Utility function to check whether or not a view-context is a Site Kit view.
 *
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */


/**
 * Checks whether or not the current viewContext is a Site Kit screen.
 *
 * @since 1.80.0
 *
 * @param {string} viewContext The view-context.
 * @return {boolean} TRUE if the passed view-context is a site kit view; otherwise FALSE.
 */
function isSiteKitScreen(viewContext) {
  return _js_googlesitekit_constants__WEBPACK_IMPORTED_MODULE_0__.SITE_KIT_VIEW_CONTEXTS.includes(viewContext);
}

/***/ }),

/***/ "./js/util/is-valid-numeric-id.js":
/*!****************************************!*\
  !*** ./js/util/is-valid-numeric-id.js ***!
  \****************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   isValidNumericID: () => (/* binding */ isValidNumericID)
/* harmony export */ });
/**
 * Utility function related to checking if a given value is numeric.
 *
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Checks the given value to see if it is a positive integer.
 *
 * @since 1.11.0 Function introduced.
 * @since 1.90.0 Moved outside Tag Manager to a generic utility function.
 *
 * @param {*} input Value to check.
 * @return {boolean} Validity.
 */
function isValidNumericID(input) {
  const id = parseFloat(input) || 0;
  if (!Number.isInteger(id)) {
    return false;
  }
  return id > 0;
}

/***/ }),

/***/ "./js/util/isnumeric.js":
/*!******************************!*\
  !*** ./js/util/isnumeric.js ***!
  \******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   isNumeric: () => (/* binding */ isNumeric)
/* harmony export */ });
/**
 * Utility function related to checking if a given value is numeric.
 *
 * Site Kit by Google, Copyright 2022 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Checks if a given value is numeric.
 *
 * @since 1.80.0
 *
 * @param {*} value The value to check.
 * @return {boolean} TRUE if a value is numeric FALSE otherwise.
 */
function isNumeric(value) {
  if (typeof value === 'number') {
    return true;
  }
  const string = (value || '').toString();
  if (!string) {
    return false;
  }
  return !isNaN(string);
}

/***/ }),

/***/ "./js/util/markdown.js":
/*!*****************************!*\
  !*** ./js/util/markdown.js ***!
  \*****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   markdownToHTML: () => (/* binding */ markdownToHTML)
/* harmony export */ });
/**
 * Markdown utility.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Replaces markdown links with its HTML equivalents.
 *
 * @since 1.22.0
 *
 * @param {string} text Markdown text.
 * @return {string} Text with HTML links.
 */
function markdownLinks(text) {
  return text.replace(new RegExp('\\[([^\\]]+)\\]\\((https?://[^/]+\\.\\w+/?.*?)\\)', 'gi'), '<a href="$2" target="_blank" rel="noopener noreferrer">$1</a>');
}

/**
 * Adds paragraphs to the text.
 *
 * @since 1.22.0
 *
 * @param {string} text Markdown text.
 * @return {string} Text with HTML links.
 */
function markdownParagraphs(text) {
  return `<p>${text.replace(/\n{2,}/g, '</p><p>')}</p>`;
}

/**
 * Replaces line breaks in the text.
 *
 * @since 1.22.0
 *
 * @param {string} text Markdown text.
 * @return {string} Text with HTML links.
 */
function markdownBreaks(text) {
  return text.replace(/\n/gi, '<br>');
}

/**
 * Converts markdown to HTML.
 *
 * @since 1.22.0
 *
 * @param {string} text Markdown text.
 * @return {string} HTML version of the markdown text.
 */
function markdownToHTML(text) {
  const rules = [markdownLinks, markdownParagraphs, markdownBreaks];
  let html = text;
  for (const rule of rules) {
    html = rule(html);
  }
  return html;
}

/***/ }),

/***/ "./js/util/partition-report.js":
/*!*************************************!*\
  !*** ./js/util/partition-report.js ***!
  \*************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   partitionReport: () => (/* binding */ partitionReport)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/**
 * Report partitioning utility.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Splits report data into segments for current and comparison ranges.
 *
 * @since 1.33.0
 * @since 1.34.0 Updated to support incomplete `report` arrays.
 *
 * @param {Array}  report               Report rows.
 * @param {Object} args                 Additional arguments.
 * @param {number} args.dateRangeLength Date range length of report segments.
 * @return {Object} Object with keys for `compareRange` and `currentRange`.
 */
function partitionReport(report, {
  dateRangeLength
}) {
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(Array.isArray(report), 'report must be an array to partition.');
  invariant__WEBPACK_IMPORTED_MODULE_0___default()(Number.isInteger(dateRangeLength) && dateRangeLength > 0, 'dateRangeLength must be a positive integer.');

  // Use a negative date range length for reverse slicing.
  const _dateRangeLength = -1 * dateRangeLength;
  return {
    // The current range should always be sliced from the end.
    currentRange: report.slice(_dateRangeLength),
    // The compare range continues from where the current left off (slicing towards the start),
    // and may be shorter (where older data is not available yet) which is fine.
    compareRange: report.slice(_dateRangeLength * 2, _dateRangeLength)
  };
}

/***/ }),

/***/ "./js/util/purify.js":
/*!***************************!*\
  !*** ./js/util/purify.js ***!
  \***************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   purify: () => (/* binding */ purify)
/* harmony export */ });
/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dompurify */ "../node_modules/dompurify/dist/purify.js");
/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(dompurify__WEBPACK_IMPORTED_MODULE_0__);
/**
 * External dependencies
 */

const purify = dompurify__WEBPACK_IMPORTED_MODULE_0___default()(__webpack_require__.g);

/***/ }),

/***/ "./js/util/report-validation.js":
/*!**************************************!*\
  !*** ./js/util/report-validation.js ***!
  \**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   isValidDateRange: () => (/* binding */ isValidDateRange),
/* harmony export */   isValidOrders: () => (/* binding */ isValidOrders),
/* harmony export */   isValidStringsOrObjects: () => (/* binding */ isValidStringsOrObjects),
/* harmony export */   isValidStringularItems: () => (/* binding */ isValidStringularItems)
/* harmony export */ });
/**
 * Reporting API validation utilities.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Validates data that can be either string or object of the certain type, or array of them.
 *
 * @since 1.13.0
 * @since 1.98.0 Added verifyStringFunction parameter.
 *
 * @param {string|string[]|Object|Object[]} data                   The data to check.
 * @param {Function}                        verifyObjectFunction   The callback to verify an object.
 * @param {Function}                        [verifyStringFunction] The callback to verify a string (optional).
 * @return {boolean} TRUE if data is valid, otherwise FALSE.
 */
function isValidStringsOrObjects(data, verifyObjectFunction, verifyStringFunction = () => true) {
  if (typeof data === 'string') {
    return verifyStringFunction(data);
  }
  if (typeof data === 'object' && verifyObjectFunction(data)) {
    return true;
  }
  if (Array.isArray(data)) {
    return data.every(item => {
      if (typeof item === 'string') {
        return verifyStringFunction(item);
      }
      if (typeof item === 'object') {
        return verifyObjectFunction(item);
      }
      return false;
    });
  }

  // Arguably this should fail/throw, because none of our allowed types were encountered.
  return false;
}

/**
 * Verifies that either date range or start and end dates are valid.
 *
 * @since 1.13.0
 *
 * @param {Object} dates           The object containing dates to check.
 * @param {string} dates.startDate The start date to check.
 * @param {string} dates.endDate   The end date to check.
 * @return {boolean} TRUE if either date range or start/end dates are valid, otherwise FALSE.
 */
function isValidDateRange({
  startDate,
  endDate
}) {
  const validStartDate = startDate && startDate.match(/^\d{4}-\d{2}-\d{2}$/);
  const validEndDate = endDate && endDate.match(/^\d{4}-\d{2}-\d{2}$/);
  return validStartDate && validEndDate;
}

/**
 * Verifies that order definitions are valid. It can be either an object or an array
 * of objects where each object has "fieldName" and valid "sortOrder" properties.
 *
 * @since 1.13.0
 *
 * @param {Object|Object[]} orders The order definitions to check.
 * @return {boolean} TRUE if order definitions are valid, otherwise FALSE.
 */
function isValidOrders(orders) {
  function isValidOrder(order) {
    const isValidFieldName = order.hasOwnProperty('fieldName') && !!order.fieldName;
    const isValidSortOrder = order.hasOwnProperty('sortOrder') && /(ASCENDING|DESCENDING)/i.test(order.sortOrder.toString());
    return isValidFieldName && isValidSortOrder;
  }
  if (Array.isArray(orders)) {
    return orders.every(item => typeof item === 'object' && isValidOrder(item));
  }
  if (typeof orders === 'object') {
    return isValidOrder(orders);
  }

  // Arguably this should fail/throw, because none of our allowed types were encountered.
  return false;
}

/**
 * Verifies that provided parameter is either a string or an array of strings.
 *
 * @since 1.15.0
 *
 * @param {(string|Array.<string>)} items Items to validate.
 * @return {boolean} TRUE if items are either a string or an array of strings, otherwise FALSE.
 */
function isValidStringularItems(items) {
  if (typeof items === 'string') {
    return true;
  }
  if (Array.isArray(items)) {
    return items.every(item => typeof item === 'string');
  }
  return false;
}

/***/ }),

/***/ "./js/util/safely-sort.js":
/*!********************************!*\
  !*** ./js/util/safely-sort.js ***!
  \********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   safelySort: () => (/* binding */ safelySort)
/* harmony export */ });
/**
 * `safelySort` utility function.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Sorts an array without causing the mutation if the given parameter is an array.
 * If the parameter is not an array, it returns the parameter as is.
 *
 * @since 1.110.0
 * @since 1.128.0 Moved to the common utility directory from the key metrics directory.
 *
 * @param {Array|*} arr Param to be sorted.
 * @return {Array|*} 	Safely sorted array without mutation.
 */
function safelySort(arr) {
  return Array.isArray(arr) ? [...arr].sort() : arr;
}

/***/ }),

/***/ "./js/util/sanitize.js":
/*!*****************************!*\
  !*** ./js/util/sanitize.js ***!
  \*****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   sanitizeHTML: () => (/* binding */ sanitizeHTML),
/* harmony export */   untrailingslashit: () => (/* binding */ untrailingslashit)
/* harmony export */ });
/* harmony import */ var _purify__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./purify */ "./js/util/purify.js");
/**
 * Internal dependencies
 */

function sanitizeHTML(unsafeHTML, domPurifyConfig = {}) {
  return {
    __html: _purify__WEBPACK_IMPORTED_MODULE_0__.purify.sanitize(unsafeHTML, domPurifyConfig)
  };
}

/**
 * Takes a string or an URL object, removes the trailing slash if any and returns it.
 *
 * @since 1.20.0
 * @private
 *
 * @param {Object|string} url A string with or without trailing slash or an URL object.
 * @return {string|undefined} The URL string after removing the trailing slash.
 */
function untrailingslashit(url) {
  const originalURL = typeof url === 'object' ? url.toString() : url;
  return originalURL?.replace?.(/\/+$/, '');
}

/***/ }),

/***/ "./js/util/scroll.js":
/*!***************************!*\
  !*** ./js/util/scroll.js ***!
  \***************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   getNavigationalScrollTop: () => (/* binding */ getNavigationalScrollTop),
/* harmony export */   getStickyHeaderHeight: () => (/* binding */ getStickyHeaderHeight),
/* harmony export */   getStickyHeaderHeightWithoutNav: () => (/* binding */ getStickyHeaderHeightWithoutNav)
/* harmony export */ });
/* harmony import */ var _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/js/hooks/useBreakpoint */ "./js/hooks/useBreakpoint.ts");
/* harmony import */ var _finite_number_or_zero__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./finite-number-or-zero */ "./js/util/finite-number-or-zero.js");
/**
 * Utility functions related to window scrolling.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */



/**
 * Gets the y coordinate to scroll to the top of a context element, taking the sticky admin bar, header and navigation height into account.
 *
 * @since 1.137.0 Renamed from getContextScrollTop to getNavigationalScrollTop.
 *
 * @param {string} selector   Selector for the element to scroll to. The id (prepend #) or class (prepend .).
 * @param {string} breakpoint The current breakpoint.
 * @return {number} The offset to scroll to.
 */
function getNavigationalScrollTop(selector, breakpoint) {
  const contextElement = document.querySelector(selector);
  if (!contextElement) {
    return 0;
  }
  const contextTop = contextElement.getBoundingClientRect().top;
  const headerHeight = getStickyHeaderHeight(breakpoint);
  return contextTop + __webpack_require__.g.scrollY - headerHeight;
}

/**
 * Gets the height of the sticky header.
 *
 * @since 1.69.0
 * @since 1.98.0 Renamed from `getHeaderHeight()` to `getStickyHeaderHeight()`.
 *
 * @param {string} breakpoint The current breakpoint.
 * @return {number} The height of the sticky header.
 */
function getStickyHeaderHeight(breakpoint) {
  let headerHeight = getStickyHeaderHeightWithoutNav(breakpoint);
  const navigation = document.querySelectorAll('.googlesitekit-navigation, .googlesitekit-entity-header');
  headerHeight += Array.from(navigation).reduce((height, el) => height + el.offsetHeight, 0);
  return headerHeight;
}

/**
 * Returns the height of the sticky WordPress admin bar, if present.
 *
 * @since 1.98.0
 *
 * @param {string} breakpoint The current breakpoint.
 * @return {number} The height of the sticky WordPress admin bar, if present.
 */
function getWordPressAdminBarHeight(breakpoint) {
  // WordPress admin bar is only sticky for breakpoints larger than BREAKPOINT_SMALL. If it's also not sticky then we can return a height of 0.
  const wpAdminBar = document.querySelector('#wpadminbar');
  if (wpAdminBar && breakpoint !== _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_0__.BREAKPOINT_SMALL) {
    return wpAdminBar.offsetHeight;
  }
  return 0;
}

/**
 * Returns the height of the sticky Site Kit header including the sticky WordPress admin bar when it's present.
 *
 * @since 1.98.0
 *
 * @param {string} breakpoint The current breakpoint.
 * @return {number} The height of the sticky Site Kit header including the sticky WordPress admin bar when it's present.
 */
function getGoogleSiteKitHeaderHeight(breakpoint) {
  // This function calculates the height of the sticky Site Kit header including the sticky WordPress admin bar when it's present.
  const header = document.querySelector('.googlesitekit-header');
  if (header) {
    // If the breakpoint is BREAKPOINT_SMALL, the WordPress admin bar is not sticky and we can return the height of the Site Kit header alone.
    // Otherwise, we use the value of the bottom of the Site Kit header's bounding box as this will take into account the sticky WordPress admin bar.
    if (breakpoint === _js_hooks_useBreakpoint__WEBPACK_IMPORTED_MODULE_0__.BREAKPOINT_SMALL) {
      return header.offsetHeight;
    }
    const headerBottom = header.getBoundingClientRect().bottom;
    // In case the header is unexpectedly _not_ sticky and the value for .bottom is negative, we return 0.
    return headerBottom < 0 ? 0 : headerBottom;
  }
  return 0;
}

/**
 * Gets the height of the sticky header without the Site Kit navigation bar.
 *
 * @since 1.95.0
 * @since 1.98.0 Renamed from `getHeaderHeightWithoutNav()` to `getStickyHeaderHeightWithoutNav()`.
 *
 * @param {string} breakpoint The current breakpoint.
 * @return {number} The height of the sticky header without the navigation bar.
 */
function getStickyHeaderHeightWithoutNav(breakpoint) {
  let headerHeight = 0;
  const header = document.querySelector('.googlesitekit-header');
  const isSiteKitHeaderSticky = !!header && __webpack_require__.g.getComputedStyle(header).position === 'sticky';
  if (isSiteKitHeaderSticky) {
    headerHeight = getGoogleSiteKitHeaderHeight(breakpoint);
  } else {
    // If the Site Kit header is not sticky, we only need to calculate the height of the sticky WordPress admin bar.
    headerHeight = getWordPressAdminBarHeight(breakpoint);
  }

  // Provide a safety net in case something unexpected has happened.
  headerHeight = (0,_finite_number_or_zero__WEBPACK_IMPORTED_MODULE_1__.finiteNumberOrZero)(headerHeight);
  return headerHeight < 0 ? 0 : headerHeight;
}

/***/ }),

/***/ "./js/util/storage.js":
/*!****************************!*\
  !*** ./js/util/storage.js ***!
  \****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   getStorage: () => (/* binding */ getStorage),
/* harmony export */   storageAvailable: () => (/* binding */ storageAvailable)
/* harmony export */ });
/**
 * Storage abstraction.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Detects whether browser storage is both supported and available.
 *
 * @since 1.0.0
 *
 * @param {string} type Browser storage to test. ex localStorage or sessionStorage.
 * @return {boolean} True if the given storage is available, false otherwise.
 */
function storageAvailable(type) {
  const storage = __webpack_require__.g[type];
  if (!storage) {
    return false;
  }
  try {
    const x = '__storage_test__';
    storage.setItem(x, x);
    storage.removeItem(x);
    return true;
  } catch (e) {
    return e instanceof DOMException && (
    // everything except Firefox
    22 === e.code ||
    // Firefox
    1014 === e.code ||
    // test name field too, because code might not be present
    // everything except Firefox
    'QuotaExceededError' === e.name ||
    // Firefox
    'NS_ERROR_DOM_QUOTA_REACHED' === e.name) &&
    // acknowledge QuotaExceededError only if there's something already stored
    0 !== storage.length;
  }
}

// Custom no-op implementation of window.Storage.
class NullStorage {
  get length() {
    return 0;
  }
  key() {
    return null;
  }
  getItem() {
    return null;
  }
  setItem() {
    // Empty method body.
  }
  removeItem() {
    // Empty method body.
  }
  clear() {
    // Empty method body.
  }
}
let storageObj;

/**
 * Gets the storage object to use.
 *
 * @since 1.0.0
 *
 * @return {Storage} Either window.sessionStorage, window.localStorage', or a
 *                   no-op implementation if neither is available.
 */
function getStorage() {
  // Only run the logic to determine the storage object once.
  if (!storageObj) {
    if (storageAvailable('sessionStorage')) {
      storageObj = __webpack_require__.g.sessionStorage;
    } else if (storageAvailable('localStorage')) {
      storageObj = __webpack_require__.g.localStorage;
    } else {
      storageObj = new NullStorage();
    }
  }
  return storageObj;
}

/***/ }),

/***/ "./js/util/stringify.js":
/*!******************************!*\
  !*** ./js/util/stringify.js ***!
  \******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   stringifyObject: () => (/* binding */ stringifyObject)
/* harmony export */ });
/* harmony import */ var md5__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! md5 */ "../node_modules/md5/md5.js");
/* harmony import */ var md5__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(md5__WEBPACK_IMPORTED_MODULE_0__);
/**
 * Stringify function.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Transforms an object into a hash string.
 *
 * This function can be used to e.g. generate cache keys, based on the given
 * object. Object properties are sorted, so even if they are provided in
 * different order, the hash will match. The function furthermore supports
 * nested objects.
 *
 * @since 1.7.0
 *
 * @param {Object} obj The object to stringify.
 * @return {string} Hash for the object.
 */
function stringifyObject(obj) {
  return md5__WEBPACK_IMPORTED_MODULE_0___default()(JSON.stringify(sortObjectProperties(obj)));
}
function sortObjectProperties(obj) {
  const orderedData = {};
  Object.keys(obj).sort().forEach(key => {
    let val = obj[key];
    if (val && 'object' === typeof val && !Array.isArray(val)) {
      val = sortObjectProperties(val);
    }
    orderedData[key] = val;
  });
  return orderedData;
}

/***/ }),

/***/ "./js/util/tag.js":
/*!************************!*\
  !*** ./js/util/tag.js ***!
  \************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   extractExistingTag: () => (/* binding */ extractExistingTag),
/* harmony export */   getExistingTagURLs: () => (/* binding */ getExistingTagURLs)
/* harmony export */ });
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! invariant */ "../node_modules/invariant/browser.js");
/* harmony import */ var invariant__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(invariant__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/api-fetch */ "./js/api-fetch-shim.js");
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/url */ "../node_modules/@wordpress/url/build-module/is-url.js");
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/url */ "../node_modules/@wordpress/url/build-module/add-query-args.js");
/* harmony import */ var _js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/js/googlesitekit/datastore/site/constants */ "./js/googlesitekit/datastore/site/constants.js");
/**
 * Utility functions for Tags
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


/**
 * Extracts a tag from the given HTML string matched by given matchers.
 *
 * @since 1.13.0
 *
 * @param {string} html        The string of html from which to extract the tag.
 * @param {Array}  tagMatchers An array of the matchers to use.
 * @return {(string|boolean)} The tag id if found, otherwise false.
 */
function extractExistingTag(html, tagMatchers) {
  const matchingPattern = tagMatchers.find(pattern => pattern.test(html));
  if (matchingPattern) {
    return matchingPattern.exec(html)[1];
  }
  return false;
}

/**
 * Gets the existing tag URLs.
 *
 * @since 1.13.0
 *
 * @param {Object} args           Arguments to use to get URLs.
 * @param {string} args.homeURL   The site's home URL.
 * @param {string} [args.ampMode] Optional. The site's AMP mode.
 * @return {Array} An array of the existing tag URLs.
 */
const getExistingTagURLs = (0,lodash__WEBPACK_IMPORTED_MODULE_1__.memoize)(async ({
  homeURL,
  ampMode
}) => {
  invariant__WEBPACK_IMPORTED_MODULE_0___default()((0,_wordpress_url__WEBPACK_IMPORTED_MODULE_4__.isURL)(homeURL), 'homeURL must be valid URL');

  // Initialize urls with home URL
  const urls = [homeURL];

  // Add first post in AMP mode if AMP mode is secondary.
  if (_js_googlesitekit_datastore_site_constants__WEBPACK_IMPORTED_MODULE_3__.AMP_MODE_SECONDARY === ampMode) {
    try {
      const ampPostURL = await (0,_wordpress_api_fetch__WEBPACK_IMPORTED_MODULE_2__["default"])({
        path: '/wp/v2/posts?per_page=1'
      }).then(posts => posts.slice(0, 1).map(post => (0,_wordpress_url__WEBPACK_IMPORTED_MODULE_5__.addQueryArgs)(post.link, {
        amp: 1
      })).pop());
      if (ampPostURL) {
        urls.push(ampPostURL);
      }
    } catch {
      return urls;
    }
  }
  return urls;
});

/***/ }),

/***/ "./js/util/tracking/constants.js":
/*!***************************************!*\
  !*** ./js/util/tracking/constants.js ***!
  \***************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   DATA_LAYER: () => (/* binding */ DATA_LAYER),
/* harmony export */   SCRIPT_IDENTIFIER: () => (/* binding */ SCRIPT_IDENTIFIER)
/* harmony export */ });
/**
 * Constants related to event tracking.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Data layer global used for internal/private Site Kit data.
 *
 * @since 1.8.0
 * @private
 */
const DATA_LAYER = '_googlesitekitDataLayer';

/**
 * The `gtag` `<script>` identifier.
 *
 * @since 1.8.0
 * @private
 */
const SCRIPT_IDENTIFIER = 'data-googlesitekit-gtag';

/***/ }),

/***/ "./js/util/tracking/createDataLayerPush.js":
/*!*************************************************!*\
  !*** ./js/util/tracking/createDataLayerPush.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ createDataLayerPush)
/* harmony export */ });
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./js/util/tracking/constants.js");
/**
 * Internal dependencies
 */


/**
 * Returns a function which, when invoked will initialize the dataLayer and push data onto it.
 *
 * @since 1.3.0
 *
 * @param {Object} target Object to enhance with dataLayer data.
 * @return {Function} Function that pushes data onto the dataLayer.
 */
function createDataLayerPush(target) {
  /**
   * Pushes data onto the data layer.
   *
   * Must push an instance of Arguments to the target.
   * Using an ES6 spread operator (i.e. `...args`) will cause tracking events to
   * _silently_ fail.
   *
   * @since 1.0.0
   * @see {@link https://github.com/google/site-kit-wp/issues/1181}
   */
  return function dataLayerPush() {
    target[_constants__WEBPACK_IMPORTED_MODULE_0__.DATA_LAYER] = target[_constants__WEBPACK_IMPORTED_MODULE_0__.DATA_LAYER] || [];
    target[_constants__WEBPACK_IMPORTED_MODULE_0__.DATA_LAYER].push(arguments);
  };
}

/***/ }),

/***/ "./js/util/tracking/createInitializeSnippet.js":
/*!*****************************************************!*\
  !*** ./js/util/tracking/createInitializeSnippet.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ createInitializeSnippet)
/* harmony export */ });
/* harmony import */ var _createDataLayerPush__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createDataLayerPush */ "./js/util/tracking/createDataLayerPush.js");
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ "./js/util/tracking/constants.js");
/* harmony import */ var _js_features_index__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/features/index */ "./js/features/index.js");
/**
 * Internal dependencies
 */




/**
 * Returns a function which, when invoked injects the gtag script if necessary.
 *
 * @since 1.44.0
 *
 * @param {Object} config          Tracking configuration.
 * @param {Object} dataLayerTarget Data layer parent object.
 * @return {Function} Function that injects gtag script if it isn't yet present.
 */
function createInitializeSnippet(config, dataLayerTarget) {
  const dataLayerPush = (0,_createDataLayerPush__WEBPACK_IMPORTED_MODULE_0__["default"])(dataLayerTarget);
  let hasInsertedTag;
  const {
    activeModules,
    referenceSiteURL,
    userIDHash,
    userRoles = [],
    isAuthenticated,
    pluginVersion
  } = config;

  /**
   * Injects the necessary script tag if not present.
   *
   * @since 1.118.0
   *
   * @return {boolean|Object} Tag src as scriptTagSrc property.
   */
  return function initializeSnippet() {
    const {
      document
    } = __webpack_require__.g;
    if (undefined === hasInsertedTag) {
      hasInsertedTag = !!document.querySelector(`script[${_constants__WEBPACK_IMPORTED_MODULE_1__.SCRIPT_IDENTIFIER}]`);
    }
    if (hasInsertedTag) {
      return false;
    }
    hasInsertedTag = true;

    // Sometimes the user roles returned by Site Kit/WordPress is not an
    // array, as expected, so we guard against it here.
    //
    // See: https://github.com/google/site-kit-wp/issues/8266
    const userRolesAsString = userRoles?.length ? userRoles.join(',') : '';

    // We should use the real time, and not the reference date, when
    // measuring when we initialized tracking.
    dataLayerPush('js', new Date()); // eslint-disable-line sitekit/no-direct-date
    dataLayerPush('config', config.trackingID, {
      groups: 'site_kit',
      send_page_view: config.isSiteKitScreen,
      domain: referenceSiteURL,
      plugin_version: pluginVersion || '',
      enabled_features: Array.from(_js_features_index__WEBPACK_IMPORTED_MODULE_2__.enabledFeatures).join(','),
      active_modules: activeModules.join(','),
      authenticated: isAuthenticated ? '1' : '0',
      user_properties: {
        user_roles: userRolesAsString,
        user_identifier: userIDHash
      }
    });

    // If not present, inject it and initialize dataLayer.
    const scriptTag = document.createElement('script');
    scriptTag.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_1__.SCRIPT_IDENTIFIER, '');
    scriptTag.async = true;
    scriptTag.src = `https://www.googletagmanager.com/gtag/js?id=${config.trackingID}&l=${_constants__WEBPACK_IMPORTED_MODULE_1__.DATA_LAYER}`;
    document.head.appendChild(scriptTag);
    return {
      scriptTagSrc: `https://www.googletagmanager.com/gtag/js?id=${config.trackingID}&l=${_constants__WEBPACK_IMPORTED_MODULE_1__.DATA_LAYER}`
    };
  };
}

/***/ }),

/***/ "./js/util/tracking/createTrackEvent.js":
/*!**********************************************!*\
  !*** ./js/util/tracking/createTrackEvent.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ createTrackEvent)
/* harmony export */ });
/* harmony import */ var _createDataLayerPush__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createDataLayerPush */ "./js/util/tracking/createDataLayerPush.js");
/**
 * Internal dependencies
 */


/**
 * Returns a function which, when invoked tracks a single event.
 *
 * @since 1.3.0
 *
 * @param {Object}   config            Tracking configuration.
 * @param {Object}   dataLayerTarget   Data layer parent object.
 * @param {Function} initializeSnippet Function to initialize tracking.
 * @param {Object}   _global           The global window object.
 * @return {Function} Function that tracks an event.
 */
function createTrackEvent(config, dataLayerTarget, initializeSnippet, _global) {
  const dataLayerPush = (0,_createDataLayerPush__WEBPACK_IMPORTED_MODULE_0__["default"])(dataLayerTarget);

  /**
   * Send an Analytics tracking event.
   *
   * @since 1.3.0
   *
   * @param {string} category The category of the event.
   * @param {string} action   The action name of the event.
   * @param {string} [label]  Optional. The label of the event.
   * @param {number} [value]  Optional. A non-negative integer that will appear as the event value.
   * @return {Promise} Promise that always resolves.
   */
  // eslint-disable-next-line require-await
  return async function trackEvent(category, action, label, value) {
    const {
      trackingEnabled
    } = config;
    if (!trackingEnabled) {
      // Resolve immediately if tracking is disabled.
      return null;
    }
    initializeSnippet();
    const eventData = {
      send_to: 'site_kit',
      event_category: category,
      event_label: label,
      value
    };
    return new Promise(resolve => {
      // This timeout ensures a tracking event does not block the user
      // event if it is not sent (in time).
      // If the event beacon fails, it shouldn't reject the promise since event
      // tracking should not result in user-facing errors. It will just
      // trigger a console warning.
      function failCallback() {
        _global.console.warn(`Tracking event "${action}" (category "${category}") took too long to fire.`);
        resolve();
      }
      const failTimeout = setTimeout(failCallback, 1000);
      // eslint-disable-next-line camelcase
      function event_callback() {
        clearTimeout(failTimeout);
        resolve();
      }
      dataLayerPush('event', action, {
        ...eventData,
        event_callback
      });

      // If the client-side opt-out is present, the event_callback will never be called
      // so we call it here to prevent the warning and added delay.
      if (_global._gaUserPrefs?.ioo?.()) {
        event_callback();
      }
    });
  };
}

/***/ }),

/***/ "./js/util/tracking/createTracking.js":
/*!********************************************!*\
  !*** ./js/util/tracking/createTracking.js ***!
  \********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ createTracking)
/* harmony export */ });
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash */ "../node_modules/lodash/lodash.js");
/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _createInitializeSnippet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createInitializeSnippet */ "./js/util/tracking/createInitializeSnippet.js");
/* harmony import */ var _createTrackEvent__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createTrackEvent */ "./js/util/tracking/createTrackEvent.js");
/**
 * Site Kit by Google, Copyright 2023 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */


/**
 * Internal dependencies
 */


const DEFAULT_CONFIG = {
  activeModules: [],
  isAuthenticated: false,
  referenceSiteURL: '',
  trackingEnabled: false,
  trackingID: '',
  userIDHash: '',
  userRoles: []
};

/**
 * Initializes tracking.
 *
 * @since 1.3.0
 *
 * @param {Object} newConfig       New configuration.
 * @param {Object} dataLayerTarget Data layer parent object.
 * @param {Object} _global         The global window object.
 * @return {Object} Tracking config.
 */
function createTracking(newConfig, dataLayerTarget = __webpack_require__.g, _global = __webpack_require__.g) {
  const config = {
    ...DEFAULT_CONFIG,
    ...newConfig
  };
  // Remove any trailing slash from the reference URL.
  if (config.referenceSiteURL) {
    config.referenceSiteURL = config.referenceSiteURL.toString().replace(/\/+$/, '');
  }
  const initializeSnippet = (0,_createInitializeSnippet__WEBPACK_IMPORTED_MODULE_1__["default"])(config, dataLayerTarget);
  const trackEvent = (0,_createTrackEvent__WEBPACK_IMPORTED_MODULE_2__["default"])(config, dataLayerTarget, initializeSnippet, _global);
  const onceTrackedEventsMap = {};
  function trackEventOnce(...params) {
    const key = JSON.stringify(params);
    if (!onceTrackedEventsMap[key]) {
      onceTrackedEventsMap[key] = (0,lodash__WEBPACK_IMPORTED_MODULE_0__.once)(trackEvent);
    }
    onceTrackedEventsMap[key](...params);
  }
  return {
    enableTracking: function enableTracking() {
      config.trackingEnabled = true;
    },
    disableTracking: function disableTracking() {
      config.trackingEnabled = false;
    },
    initializeSnippet,
    isTrackingEnabled: function isTrackingEnabled() {
      return !!config.trackingEnabled;
    },
    trackEvent,
    trackEventOnce
  };
}

/***/ }),

/***/ "./js/util/tracking/index.js":
/*!***********************************!*\
  !*** ./js/util/tracking/index.js ***!
  \***********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   disableTracking: () => (/* binding */ disableTracking),
/* harmony export */   enableTracking: () => (/* binding */ enableTracking),
/* harmony export */   isTrackingEnabled: () => (/* binding */ isTrackingEnabled),
/* harmony export */   toggleTracking: () => (/* binding */ toggleTracking),
/* harmony export */   trackEvent: () => (/* binding */ trackEvent),
/* harmony export */   trackEventOnce: () => (/* binding */ trackEventOnce)
/* harmony export */ });
/* harmony import */ var _createTracking__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createTracking */ "./js/util/tracking/createTracking.js");
/**
 * Event tracking utilities.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* eslint-disable sitekit/jsdoc-no-unnamed-boolean-params */

/**
 * Internal dependencies
 */

const {
  activeModules = [],
  isSiteKitScreen,
  trackingEnabled,
  trackingID,
  referenceSiteURL,
  userIDHash,
  isAuthenticated,
  userRoles
} = __webpack_require__.g._googlesitekitTrackingData || {};

// Access the plugin version directly without destructuring as Webpack's DefinePlugin
// performs text replacement at build time and doesn't support destructuring patterns.
// See: https://github.com/google/site-kit-wp/issues/11802#issuecomment-3562955579
const pluginVersion = "1.168.0";
const initialConfig = {
  activeModules,
  trackingEnabled,
  trackingID,
  referenceSiteURL,
  userIDHash,
  isSiteKitScreen,
  userRoles,
  isAuthenticated,
  pluginVersion
};
const {
  enableTracking,
  disableTracking,
  isTrackingEnabled,
  initializeSnippet,
  trackEvent,
  trackEventOnce
} = (0,_createTracking__WEBPACK_IMPORTED_MODULE_0__["default"])(initialConfig);

/**
 * Changes the active state of tracking.
 *
 * @since 1.3.0
 *
 * @param {boolean} activeStatus The new state to set.
 */
function toggleTracking(activeStatus) {
  if (!!activeStatus) {
    enableTracking();
  } else {
    disableTracking();
  }
}

// Bootstrap on import if tracking is allowed.
if (isSiteKitScreen && trackingEnabled) {
  initializeSnippet();
}


/***/ }),

/***/ "./js/util/urls.js":
/*!*************************!*\
  !*** ./js/util/urls.js ***!
  \*************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   getFullURL: () => (/* binding */ getFullURL),
/* harmony export */   getURLPath: () => (/* binding */ getURLPath),
/* harmony export */   isHashOnly: () => (/* binding */ isHashOnly),
/* harmony export */   normalizeURL: () => (/* binding */ normalizeURL),
/* harmony export */   shortenURL: () => (/* binding */ shortenURL)
/* harmony export */ });
/* harmony import */ var _wordpress_url__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/url */ "../node_modules/@wordpress/url/build-module/is-url.js");
/**
 * URL pathname getter utility function.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * WordPress dependencies
 */


/**
 * Returns the path from a URL, omitting its protocol, hostname, query params, and hash.
 *
 * @since 1.24.0
 *
 * @param {string} url The URL to get the path from.
 * @return {string} The URL path.
 */
function getURLPath(url) {
  try {
    return new URL(url).pathname;
  } catch {}
  return null;
}

/**
 * Returns the absolute URL from a path including the siteURL.
 *
 * @since 1.32.0
 *
 * @param {string} siteURL The siteURL fo the WordPress install.
 * @param {string} path    The path.
 * @return {string} The URL path.
 */
function getFullURL(siteURL, path) {
  try {
    return new URL(path, siteURL).href;
  } catch {}
  return (typeof siteURL === 'string' ? siteURL : '') + (typeof path === 'string' ? path : '');
}

/**
 * Normalizes URL by removing protocol, www subdomain and trailing slash.
 *
 * @since 1.33.0
 *
 * @param {string} incomingURL The original URL.
 * @return {string} Normalized URL.
 */
function normalizeURL(incomingURL) {
  if (typeof incomingURL !== 'string') {
    return incomingURL;
  }
  return incomingURL
  // Remove protocol and optional "www." prefix from the URL.
  .replace(/^https?:\/\/(www\.)?/i, '')
  // Remove trailing slash.
  .replace(/\/$/, '');
}

/**
 * Checks if a string is not a full URL and simply a hash / anchor link.
 *
 * @since 1.49.0
 *
 * @param {string} url The URL or Hash string to test.
 * @return {boolean} Returns true if the string is only a hash and not a full URL.
 */
function isHashOnly(url) {
  return /^#\w[A-Za-z0-9-_]*$/.test(url);
}

/**
 * Shortens a URL to fit a given length.
 *
 * @since 1.49.0
 *
 * @param {string} url      The original URL to shorten.
 * @param {number} maxChars The maximum length of the URL.
 * @return {string} The shortened URL.
 */
function shortenURL(url, maxChars) {
  if (!(0,_wordpress_url__WEBPACK_IMPORTED_MODULE_0__.isURL)(url)) {
    return url;
  }
  if (url.length <= maxChars) {
    return url;
  }
  const urlObject = new URL(url);
  const shortenedURL = url.replace(urlObject.origin, '');
  if (shortenedURL.length < maxChars) {
    return shortenedURL;
  }
  const extraChars = shortenedURL.length - Math.floor(maxChars) + 1; // 1 is the length of "…".
  return '…' + shortenedURL.substr(extraChars);
}

/***/ }),

/***/ "./js/util/when-active.js":
/*!********************************!*\
  !*** ./js/util/when-active.js ***!
  \********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ whenActive)
/* harmony export */ });
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! googlesitekit-data */ "googlesitekit-data");
/* harmony import */ var googlesitekit_data__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/js/googlesitekit/modules/datastore/constants */ "./js/googlesitekit/modules/datastore/constants.js");
/* harmony import */ var _js_googlesitekit_data_transform_case__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/js/googlesitekit/data/transform-case */ "./js/googlesitekit/data/transform-case.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * `whenActive` HOC.
 *
 * Site Kit by Google, Copyright 2021 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Internal dependencies
 */




/**
 * Higher-Order Component to render wrapped components when selected module is active and connected.
 *
 * A higher-order component is used here instead of hooks because there is potential for
 * related selectors in components this HOC wraps to call out to resolvers that call endpoints
 * for modules that aren't active. This would cause 404s at best and possibly errors, so
 * it's better to wrap them in HOCs and "return early".
 *
 * @since 1.16.0
 *
 * @param {Object}      options                       Options for enhancing function.
 * @param {string}      options.moduleName            Name of a module to check.
 * @param {WPComponent} [options.FallbackComponent]   Optional. Fallback component to render when the module is not active.
 * @param {WPComponent} [options.IncompleteComponent] Optional. Fallback component to render when the module is active but not connected.
 * @return {Function} Enhancing function.
 */

function whenActive({
  moduleName,
  FallbackComponent,
  IncompleteComponent
}) {
  return WrappedComponent => {
    function WhenActiveComponent(props) {
      const module = (0,googlesitekit_data__WEBPACK_IMPORTED_MODULE_0__.useSelect)(select => select(_js_googlesitekit_modules_datastore_constants__WEBPACK_IMPORTED_MODULE_1__.CORE_MODULES).getModule(moduleName), [moduleName]);

      // Return null if the module is not loaded yet or doesn't exist.
      if (!module) {
        return null;
      }

      // This component isn't widget-specific but widgets need to use `WidgetNull`
      // from props when rendering "null" output.
      const DefaultFallbackComponent = FallbackComponent || props.WidgetNull || null;

      // Return a fallback if the module is not active.
      if (module.active === false) {
        return DefaultFallbackComponent && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(DefaultFallbackComponent, {
          ...props
        });
      }

      // Return a fallback if the module is active but not connected yet.
      if (module.connected === false) {
        // If no IncompleteComponent is provided, use the default fallback.
        const IncompleteFallbackComponent = IncompleteComponent || DefaultFallbackComponent;
        return IncompleteFallbackComponent && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(IncompleteFallbackComponent, {
          ...props
        });
      }

      // Return the active and connected component.
      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(WrappedComponent, {
        ...props
      });
    }
    WhenActiveComponent.displayName = `When${(0,_js_googlesitekit_data_transform_case__WEBPACK_IMPORTED_MODULE_2__.hyphenCaseToPascalCase)(moduleName)}Active`;
    if (WrappedComponent.displayName || WrappedComponent.name) {
      WhenActiveComponent.displayName += `(${WrappedComponent.displayName || WrappedComponent.name})`;
    }
    return WhenActiveComponent;
  };
}

/***/ }),

/***/ "./js/util/withIntersectionObserver.js":
/*!*********************************************!*\
  !*** ./js/util/withIntersectionObserver.js ***!
  \*********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (/* binding */ withIntersectionObserver)
/* harmony export */ });
/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-use */ "../node_modules/react-use/esm/useIntersection.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ "../node_modules/react/index.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ "../node_modules/react/jsx-runtime.js");
/**
 * `withIntersectionObserver` HOC.
 *
 * Site Kit by Google, Copyright 2024 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */


/**
 * Higher-Order Component to render a wrapped component and trigger a callback when it becomes in view.
 *
 * This was initially added to provide a workaround for a limitation with the `useIntersection` hook from `react-use`.
 * We should replace `useIntersection()` with a version that doesn't have this limitation.
 * See https://github.com/streamich/react-use/issues/2359.
 *
 * This HOC can however remain as an abstraction around `useIntersection()` to avoid repeating the same logic.
 *
 * @since 1.125.0
 *
 * @param {WPComponent} WrappedComponent Component to wrap.
 * @return {Function} Enhancing function.
 */

function withIntersectionObserver(WrappedComponent) {
  function WithIntersectionObserverComponent({
    onInView,
    ...props
  }) {
    const inViewRef = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useRef)();
    const intersectionEntry = (0,react_use__WEBPACK_IMPORTED_MODULE_2__["default"])(inViewRef, {
      root: null,
      threshold: 0.45
    });
    const [hasBeenInView, setHasBeenInView] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useState)(false);
    const inView = !!intersectionEntry?.isIntersecting && !!intersectionEntry?.intersectionRatio;
    (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
      if (!intersectionEntry) {
        return;
      }
      if (inView && !hasBeenInView) {
        onInView();
        setHasBeenInView(true);
      }
    }, [hasBeenInView, inView, intersectionEntry, onInView]);
    return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(WrappedComponent, {
      ref: inViewRef,
      ...props
    });
  }
  WithIntersectionObserverComponent.displayName = 'WithIntersectionObserverComponent';
  if (WrappedComponent.displayName || WrappedComponent.name) {
    WithIntersectionObserverComponent.displayName += `(${WrappedComponent.displayName || WrappedComponent.name})`;
  }
  WithIntersectionObserverComponent.propTypes = {
    onInView: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func).isRequired,
    ...WrappedComponent.propTypes
  };
  return WithIntersectionObserverComponent;
}

/***/ }),

/***/ "./svg/graphics/analytics-audience-segmentation-tile-error.svg":
/*!*********************************************************************!*\
  !*** ./svg/graphics/analytics-audience-segmentation-tile-error.svg ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path0, _path1, _path10;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgAnalyticsAudienceSegmentationTileError = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "0 0 190 142"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#F3F5F7",
  d: "M11.755 110.799a44 44 0 0 0 4.457 4.095c14.958 11.965 27.316 11.946 44.424 9.762 15.862-2.025 17.862-10.923 35.362-10.923s25.665 6.38 46 5 38.081-23.761 44.757-41.774c9.833-26.528-4.519-57.596-24.82-66.096-18.699-8.5-31.437.01-51.437-3.63C84.998 2.59 79.998-4.051 60.636 4c-20.53 8.701-20.455 23.533-32.699 38.667C18.974 53.747 4.956 56.312.734 76.959c-2.673 13.07 3.077 25.467 11.021 33.84"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#161B18",
  d: "M96.07 141.772c39.765 0 72-2.014 72-4.5 0-2.485-32.235-4.5-72-4.5s-72 2.015-72 4.5c0 2.486 32.236 4.5 72 4.5",
  opacity: 0.1,
  style: {
    mixBlendMode: "multiply"
  }
}), _path2 || (_path2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  d: "M96.07 141.772c39.765 0 72-2.014 72-4.5 0-2.485-32.235-4.5-72-4.5s-72 2.015-72 4.5c0 2.486 32.236 4.5 72 4.5"
})), _path3 || (_path3 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#161B18",
  strokeLinecap: "round",
  strokeLinejoin: "round",
  strokeWidth: 1.7,
  d: "M72.657 62.826c2.14 7.94 9.59 13.553 17.488 15.847 7.898 2.295 16.295 1.846 24.51 1.435 3.883-.192 7.855-.363 11.576.764s7.202 3.821 8.191 7.58c.568 2.16.147 4.49-.959 6.424"
})), _path4 || (_path4 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#161B18",
  strokeLinecap: "round",
  strokeLinejoin: "round",
  strokeWidth: 1.705,
  d: "M57.306 76.348c-1.237 19.582-8.053 37.15-3.497 59.224h-5.188M63.171 135.572h-5.19l9.173-59.224"
})), _path5 || (_path5 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#000",
  strokeLinecap: "round",
  strokeWidth: 1.7,
  d: "M40.754 70.174c-4.429 2-12.93 6.455-12.929 15.5"
})), _path6 || (_path6 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  d: "m76.804 102.64-3.602.327-21.976 1.988-12.845 1.16-1.22-28.616-2.118-49.8 40.092-1.46.81 37.088.109 4.993.745 34.204z"
})), _path7 || (_path7 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#999F9B",
  d: "m73.203 102.967 2.067-.188 1.537-.139-1.671-76.403-2.303.105 1.24 72.43-35.862 3.393.125 2.852.048 1.095 12.845-1.159 21.977-1.989z"
})), _path8 || (_path8 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#000",
  strokeLinecap: "round",
  strokeWidth: 1.7,
  d: "M27.827 85.674c0 5.264 5.99 9.06 10.262 7.203"
})), _path9 || (_path9 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#7B807D",
  strokeLinecap: "round",
  strokeMiterlimit: 10,
  strokeWidth: 4.393,
  d: "m145.07 26.773-28 108.499"
})), _path0 || (_path0 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#E77D5B",
  d: "M143.121 18.374 101.519 60.22a4.39 4.39 0 0 0-1.124 4.247 4.4 4.4 0 0 0 3.116 3.096l57.038 15.105a4.394 4.394 0 0 0 5.365-5.402l-15.439-56.943a4.393 4.393 0 0 0-7.354-1.949"
})), _path1 || (_path1 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#962C0A",
  d: "m138.137 42.556 2.44-9.216 4.756 1.26-2.44 9.215-3.501 11.163-3.78-1.001zm-3.301 22.078a3.37 3.37 0 0 1-2.088-1.553 3.37 3.37 0 0 1-.316-2.584q.36-1.359 1.541-2.046a3.38 3.38 0 0 1 2.584-.316q1.359.36 2.046 1.542t.327 2.54a3.38 3.38 0 0 1-1.553 2.09q-1.182.686-2.541.327"
})), _path10 || (_path10 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#161B18",
  strokeLinecap: "round",
  strokeLinejoin: "round",
  strokeWidth: 1.7,
  d: "M133.461 94.876a8.35 8.35 0 0 1-4.565 3.774c-4.063 1.39-9.013-.82-10.694-4.77"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgAnalyticsAudienceSegmentationTileError);

/***/ }),

/***/ "./svg/graphics/analytics.svg":
/*!************************************!*\
  !*** ./svg/graphics/analytics.svg ***!
  \************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _g;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgAnalytics = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 48 53"
}, props), _g || (_g = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
  fill: "none",
  fillRule: "evenodd"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#F9AB00",
  d: "M48 46.376a6.63 6.63 0 0 1-2.18 4.952 6.47 6.47 0 0 1-5.11 1.625c-3.339-.495-5.789-3.433-5.708-6.848V6.891C34.925 3.475 37.379.537 40.72.045a6.47 6.47 0 0 1 5.102 1.631A6.63 6.63 0 0 1 48 6.622z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#E37400",
  fillRule: "nonzero",
  d: "M6.5 40.002a6.5 6.5 0 0 1 4.594 1.901 6.5 6.5 0 0 1 1.906 4.6 6.5 6.5 0 0 1-1.906 4.596A6.5 6.5 0 0 1 6.5 53a6.5 6.5 0 0 1-4.594-1.9A6.5 6.5 0 0 1 0 46.501a6.5 6.5 0 0 1 1.905-4.6A6.5 6.5 0 0 1 6.5 40zM24.348 20.002c-3.62.197-6.429 3.256-6.346 6.908v17.644c0 4.79 2.092 7.696 5.16 8.314a6.5 6.5 0 0 0 5.442-1.358A6.61 6.61 0 0 0 31 46.4V26.605a6.62 6.62 0 0 0-1.912-4.668A6.52 6.52 0 0 0 24.459 20z"
}))));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgAnalytics);

/***/ }),

/***/ "./svg/graphics/audience-connect-analytics-cta-graphic-tablet.svg":
/*!************************************************************************!*\
  !*** ./svg/graphics/audience-connect-analytics-cta-graphic-tablet.svg ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path, _path2, _g, _defs;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgAudienceConnectAnalyticsCtaGraphicTablet = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "0 0 553 146"
}, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
  clipPath: "url(#audience-connect-analytics-cta-graphic-tablet_svg__a)"
}, _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8E6CA",
  d: "M67.728 34.59a72 72 0 0 1 7.31-6.584c24.527-19.24 44.792-19.21 72.848-15.698 18.966 2.374 30.047 11.404 55.905 9.984C229.65 20.872 234.5 10.117 271 14.308S322.5-1.5 360.5 1.5s52 32 72 42 37 8.5 50 35 4 83.5-36 106-99.355 25.386-122.439 27.553c-27.938 2.624-50.995-28.317-79.194-21.151-17.371 4.415-27.674 22.934-41.076 35.155-15.636 14.258-49.319 13.362-67.627 5.752-17.448-7.25-34.42-21.622-40.118-42.788-4.338-16.119-5.521-35.333-17.667-50.056-14.698-17.816-23.679-25.763-28.725-49.961-4.382-21.016 5.047-40.95 18.074-54.414"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("mask", {
  id: "audience-connect-analytics-cta-graphic-tablet_svg__b",
  width: 441,
  height: 237,
  x: 48,
  y: 1,
  maskUnits: "userSpaceOnUse",
  style: {
    maskType: "alpha"
  }
}, _path2 || (_path2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8E6CA",
  d: "M67.728 34.59a72 72 0 0 1 7.31-6.584c24.527-19.24 44.792-19.21 72.848-15.698 18.966 2.374 30.047 11.404 55.905 9.984C229.65 20.872 234.5 10.117 271 14.308S322.5-1.5 360.5 1.5s52 32 72 42 37 8.5 50 35 4 83.5-36 106-99.355 25.386-122.439 27.553c-27.938 2.624-50.995-28.317-79.194-21.151-17.371 4.415-27.674 22.934-41.076 35.155-15.636 14.258-49.319 13.362-67.627 5.752-17.448-7.25-34.42-21.622-40.118-42.788-4.338-16.119-5.521-35.333-17.667-50.056-14.698-17.816-23.679-25.763-28.725-49.961-4.382-21.016 5.047-40.95 18.074-54.414"
}))), _g || (_g = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
  filter: "url(#audience-connect-analytics-cta-graphic-tablet_svg__c)",
  mask: "url(#audience-connect-analytics-cta-graphic-tablet_svg__b)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 112.625,
  height: 153.111,
  x: 93,
  y: 29.181,
  fill: "#fff",
  rx: 8.097
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 39.025,
  height: 7.005,
  x: 107.008,
  y: 92.222,
  fill: "#EBEEF0",
  rx: 3.502
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 14.009,
  height: 7.005,
  x: 107.008,
  y: 81.214,
  fill: "#EBEEF0",
  rx: 3.502
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 14.009,
  height: 7.005,
  x: 107.008,
  y: 117.295,
  fill: "#EBEEF0",
  rx: 3.502
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8E6CA",
  d: "M170.051 90.72a6.504 6.504 0 0 1 6.504-6.504h10.007a6.504 6.504 0 0 1 0 13.009h-10.007a6.504 6.504 0 0 1-6.504-6.504"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 26.5,
  height: 6.625,
  x: 106.984,
  y: 44.639,
  fill: "#EBEEF0",
  rx: 3.313
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#FFDED3",
  d: "M170.051 126.802a6.504 6.504 0 0 1 6.504-6.505h10.007a6.504 6.504 0 0 1 0 13.009h-10.007a6.504 6.504 0 0 1-6.504-6.504"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 41.027,
  height: 7.005,
  x: 106.008,
  y: 128.303,
  fill: "#EBEEF0",
  rx: 3.502
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#EBEEF0",
  strokeWidth: 1.472,
  d: "M205.625 64.882H93.736"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 112.625,
  height: 153.111,
  x: 220.348,
  y: 29.181,
  fill: "#fff",
  rx: 8.097
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 38.871,
  height: 7.005,
  x: 234.301,
  y: 92.222,
  fill: "#EBEEF0",
  rx: 3.502
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 13.954,
  height: 7.005,
  x: 234.301,
  y: 81.214,
  fill: "#EBEEF0",
  rx: 3.502
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 13.954,
  height: 7.005,
  x: 234.301,
  y: 117.295,
  fill: "#EBEEF0",
  rx: 3.502
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8E6CA",
  d: "M297.094 90.72a6.504 6.504 0 0 1 6.504-6.504h9.915a6.504 6.504 0 0 1 0 13.009h-9.915a6.504 6.504 0 0 1-6.504-6.504"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 26.5,
  height: 6.625,
  x: 234.332,
  y: 44.639,
  fill: "#EBEEF0",
  rx: 3.313
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#EBEEF0",
  strokeWidth: 1.472,
  d: "M325.613 64.882H220.349"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#FFDED3",
  d: "M297.094 126.802a6.504 6.504 0 0 1 6.504-6.505h9.915a6.504 6.504 0 0 1 0 13.009h-9.915a6.504 6.504 0 0 1-6.504-6.504"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 40.864,
  height: 7.005,
  x: 233.305,
  y: 128.303,
  fill: "#EBEEF0",
  rx: 3.502
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 112.625,
  height: 153.111,
  x: 347.695,
  y: 29.181,
  fill: "#fff",
  rx: 8.097
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 38.871,
  height: 7.005,
  x: 361.648,
  y: 92.222,
  fill: "#EBEEF0",
  rx: 3.502
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 13.954,
  height: 7.005,
  x: 361.648,
  y: 81.214,
  fill: "#EBEEF0",
  rx: 3.502
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 13.954,
  height: 7.005,
  x: 361.648,
  y: 117.295,
  fill: "#EBEEF0",
  rx: 3.502
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#FFDED3",
  d: "M424.441 90.72a6.504 6.504 0 0 1 6.505-6.504h9.915a6.504 6.504 0 0 1 0 13.009h-9.915a6.504 6.504 0 0 1-6.505-6.504"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 26.5,
  height: 6.625,
  x: 361.68,
  y: 44.639,
  fill: "#EBEEF0",
  rx: 3.313
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#EBEEF0",
  strokeWidth: 1.472,
  d: "M452.961 64.882H347.697"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8E6CA",
  d: "M424.441 126.802a6.505 6.505 0 0 1 6.505-6.505h9.915a6.504 6.504 0 0 1 0 13.009h-9.915a6.504 6.504 0 0 1-6.505-6.504"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 40.864,
  height: 7.005,
  x: 360.652,
  y: 128.303,
  fill: "#EBEEF0",
  rx: 3.502
})))), _defs || (_defs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("defs", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("clipPath", {
  id: "audience-connect-analytics-cta-graphic-tablet_svg__a"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#fff",
  d: "M0 0h553v158H0z"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("filter", {
  id: "audience-connect-analytics-cta-graphic-tablet_svg__c",
  width: 399.32,
  height: 185.111,
  x: 77,
  y: 17.181,
  colorInterpolationFilters: "sRGB",
  filterUnits: "userSpaceOnUse"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feFlood", {
  floodOpacity: 0,
  result: "BackgroundImageFix"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feColorMatrix", {
  in: "SourceAlpha",
  result: "hardAlpha",
  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feOffset", {
  dy: 4
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feGaussianBlur", {
  stdDeviation: 8
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feComposite", {
  in2: "hardAlpha",
  operator: "out"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feColorMatrix", {
  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feBlend", {
  in2: "BackgroundImageFix",
  result: "effect1_dropShadow_2898_16714"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feBlend", {
  in: "SourceGraphic",
  in2: "effect1_dropShadow_2898_16714",
  result: "shape"
})))));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgAudienceConnectAnalyticsCtaGraphicTablet);

/***/ }),

/***/ "./svg/graphics/audience-connect-analytics-cta-graphic.svg":
/*!*****************************************************************!*\
  !*** ./svg/graphics/audience-connect-analytics-cta-graphic.svg ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _defs, _path, _path2, _g;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgAudienceConnectAnalyticsCtaGraphic = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "-3 1 333.666 149.252"
}, props), _defs || (_defs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("defs", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("filter", {
  id: "audience-connect-analytics-cta-graphic_svg__c",
  width: 144.59,
  height: 185.064,
  x: 109.551,
  y: 18.171,
  colorInterpolationFilters: "sRGB",
  filterUnits: "userSpaceOnUse"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feFlood", {
  floodOpacity: 0,
  result: "BackgroundImageFix"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feColorMatrix", {
  in: "SourceAlpha",
  result: "hardAlpha",
  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feOffset", {
  dy: 4
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feGaussianBlur", {
  stdDeviation: 8
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feComposite", {
  in2: "hardAlpha",
  operator: "out"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feColorMatrix", {
  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feBlend", {
  in2: "BackgroundImageFix",
  result: "effect1_dropShadow_1731_24094"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feBlend", {
  in: "SourceGraphic",
  in2: "effect1_dropShadow_1731_24094",
  result: "shape"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("filter", {
  id: "audience-connect-analytics-cta-graphic_svg__d",
  width: 144.59,
  height: 185.064,
  x: 236.859,
  y: 18.171,
  colorInterpolationFilters: "sRGB",
  filterUnits: "userSpaceOnUse"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feFlood", {
  floodOpacity: 0,
  result: "BackgroundImageFix"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feColorMatrix", {
  in: "SourceAlpha",
  result: "hardAlpha",
  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feOffset", {
  dy: 4
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feGaussianBlur", {
  stdDeviation: 8
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feComposite", {
  in2: "hardAlpha",
  operator: "out"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feColorMatrix", {
  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feBlend", {
  in2: "BackgroundImageFix",
  result: "effect1_dropShadow_1731_24094"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feBlend", {
  in: "SourceGraphic",
  in2: "effect1_dropShadow_1731_24094",
  result: "shape"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("clipPath", {
  id: "audience-connect-analytics-cta-graphic_svg__a"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#fff",
  d: "M0 0h480v150H0z"
})))), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
  clipPath: "url(#audience-connect-analytics-cta-graphic_svg__a)",
  transform: "translate(-73)"
}, _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8E6CA",
  d: "M91.722 36.579a72 72 0 0 1 7.307-6.582c24.521-19.234 44.779-19.203 72.826-15.693 18.961 2.373 30.038 11.4 55.889 9.98s32.474-7.992 64.117-5.887c25.048 1.667 36.285 6.612 58.554 18.182 20.61 10.707 39.324 29.519 48.728 54.397 16.12 42.644-12.622 119.393-51.166 123.012-27.93 2.623-50.979-28.308-79.169-21.145-17.366 4.414-27.666 22.927-41.064 35.144-15.631 14.255-49.304 13.359-67.607 5.751-17.442-7.248-34.409-21.615-40.106-42.775-4.337-16.114-5.519-35.322-17.661-50.04-14.694-17.811-23.672-25.756-28.716-49.947-4.382-21.009 5.045-40.938 18.068-54.397"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("mask", {
  id: "audience-connect-analytics-cta-graphic_svg__b",
  width: 332,
  height: 228,
  x: 72,
  y: 12,
  maskUnits: "userSpaceOnUse",
  style: {
    maskType: "alpha"
  }
}, _path2 || (_path2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8E6CA",
  d: "M91.722 36.579a72 72 0 0 1 7.307-6.582c24.521-19.234 44.779-19.203 72.826-15.693 18.961 2.373 30.038 11.4 55.889 9.98s32.474-7.992 64.117-5.887c25.048 1.667 36.285 6.612 58.554 18.182 20.61 10.707 39.324 29.519 48.728 54.397 16.12 42.644-12.622 119.393-51.166 123.012-27.93 2.623-50.979-28.308-79.169-21.145-17.366 4.414-27.666 22.927-41.064 35.144-15.631 14.255-49.304 13.359-67.607 5.751-17.442-7.248-34.409-21.615-40.106-42.775-4.337-16.114-5.519-35.322-17.661-50.04-14.694-17.811-23.672-25.756-28.716-49.947-4.382-21.009 5.045-40.938 18.068-54.397"
}))), _g || (_g = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
  mask: "url(#audience-connect-analytics-cta-graphic_svg__b)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
  filter: "url(#audience-connect-analytics-cta-graphic_svg__c)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 112.591,
  height: 153.065,
  x: 125.551,
  y: 30.171,
  fill: "#fff",
  rx: 8.095
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 39.014,
  height: 7.002,
  x: 139.555,
  y: 93.193,
  fill: "#EBEEF0",
  rx: 3.501
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 14.005,
  height: 7.002,
  x: 139.555,
  y: 82.189,
  fill: "#EBEEF0",
  rx: 3.501
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 14.005,
  height: 7.002,
  x: 139.555,
  y: 118.259,
  fill: "#EBEEF0",
  rx: 3.501
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8E6CA",
  d: "M202.578 91.693a6.5 6.5 0 0 1 6.502-6.503h10.004a6.502 6.502 0 0 1 0 13.005H209.08a6.5 6.5 0 0 1-6.502-6.502"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 26.492,
  height: 6.623,
  x: 139.535,
  y: 45.625,
  fill: "#EBEEF0",
  rx: 3.311
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#FFDED3",
  d: "M202.578 127.763a6.5 6.5 0 0 1 6.502-6.502h10.004a6.502 6.502 0 1 1 0 13.004H209.08a6.5 6.5 0 0 1-6.502-6.502"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 41.014,
  height: 7.002,
  x: 138.555,
  y: 129.263,
  fill: "#EBEEF0",
  rx: 3.501
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#EBEEF0",
  strokeWidth: 1.472,
  d: "M238.141 65.862H126.286"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
  filter: "url(#audience-connect-analytics-cta-graphic_svg__d)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 112.591,
  height: 153.065,
  x: 252.859,
  y: 30.171,
  fill: "#fff",
  rx: 8.095
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 38.859,
  height: 7.002,
  x: 266.809,
  y: 93.193,
  fill: "#EBEEF0",
  rx: 3.501
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 13.949,
  height: 7.002,
  x: 266.809,
  y: 82.189,
  fill: "#EBEEF0",
  rx: 3.501
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 13.949,
  height: 7.002,
  x: 266.805,
  y: 118.259,
  fill: "#EBEEF0",
  rx: 3.501
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8E6CA",
  d: "M329.582 91.693a6.5 6.5 0 0 1 6.502-6.503h9.912a6.502 6.502 0 1 1 0 13.005h-9.912a6.5 6.5 0 0 1-6.502-6.502"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 26.492,
  height: 6.623,
  x: 266.844,
  y: 45.625,
  fill: "#EBEEF0",
  rx: 3.311
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#EBEEF0",
  strokeWidth: 1.472,
  d: "M358.094 65.862H252.862"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#FFDED3",
  d: "M329.582 127.763a6.5 6.5 0 0 1 6.502-6.502h9.912a6.502 6.502 0 1 1 0 13.004h-9.912a6.5 6.5 0 0 1-6.502-6.502"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 40.852,
  height: 7.002,
  x: 265.812,
  y: 129.263,
  fill: "#EBEEF0",
  rx: 3.501
})))));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgAudienceConnectAnalyticsCtaGraphic);

/***/ }),

/***/ "./svg/graphics/audience-segmentation-collecting-data.svg":
/*!****************************************************************!*\
  !*** ./svg/graphics/audience-segmentation-collecting-data.svg ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path0;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgAudienceSegmentationCollectingData = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "0 0 109 94"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#EBEEF0",
  d: "M54.323 93.529c21.908 0 39.667-17.76 39.667-39.667 0-21.908-17.76-39.667-39.667-39.667s-39.667 17.76-39.667 39.667 17.76 39.667 39.667 39.667"
})), _path2 || (_path2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#161B18",
  strokeLinecap: "round",
  strokeLinejoin: "round",
  strokeWidth: 2.578,
  d: "m37.717 38.469 52.162 18.445a12.955 12.955 0 0 0 16.533-7.896v0a12.95 12.95 0 0 0-3.553-13.955 13 13 0 0 0-4.349-2.582L87.024 28.42l-.014.042c.3-1.877.323-3.787.07-5.67"
})), _path3 || (_path3 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#161B18",
  strokeLinecap: "round",
  strokeLinejoin: "round",
  strokeWidth: 2.578,
  d: "M70.947 38.469 18.785 56.914A12.955 12.955 0 0 1 2.25 49.018v0a12.955 12.955 0 0 1 7.902-16.537L21.64 28.42l.016.042a19.4 19.4 0 0 1-.07-5.668"
})), _path4 || (_path4 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#70B2F5",
  d: "m27.61.51.497 83.126a39.625 39.625 0 0 0 53.598-1.071l1.19-82.11z"
})), _path5 || (_path5 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#77AD8C",
  d: "m27.61.51.497 83.126a39.625 39.625 0 0 0 53.598-1.071l1.19-82.11z"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#77AD8C",
  d: "m82.648 17.112.24-16.66h-5.853l-1.033 86.633a40 40 0 0 0 5.702-4.526z",
  opacity: 0.2,
  style: {
    mixBlendMode: "multiply"
  }
}), _path6 || (_path6 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#161B18",
  strokeLinecap: "round",
  strokeLinejoin: "round",
  strokeWidth: 1.785,
  d: "M44.723 46.377c4.916 3.946 11.868 4.892 19.218.273"
})), _path7 || (_path7 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#7B807D",
  d: "M80.38 24.992c0-9.563-11.446-17.056-26.059-17.056s-26.06 7.49-26.06 17.056z"
})), _path8 || (_path8 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#fff",
  stroke: "#464B48",
  strokeLinejoin: "round",
  strokeWidth: 4.363,
  d: "M39.588 39.737c8.143 0 14.744-6.602 14.744-14.745s-6.601-14.744-14.744-14.744-14.744 6.601-14.744 14.744 6.601 14.744 14.744 14.744Z"
})), _path9 || (_path9 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#fff",
  stroke: "#464B48",
  strokeLinejoin: "round",
  strokeWidth: 4.363,
  d: "M69.076 39.737c8.143 0 14.745-6.602 14.745-14.745s-6.602-14.744-14.745-14.744-14.744 6.601-14.744 14.744 6.601 14.744 14.744 14.744Z"
})), _path0 || (_path0 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#B8BDB9",
  strokeLinejoin: "round",
  strokeWidth: 3.173,
  d: "M30.86 24.992a8.74 8.74 0 0 1 8.726-8.726M60.348 24.992a8.74 8.74 0 0 1 8.726-8.726"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgAudienceSegmentationCollectingData);

/***/ }),

/***/ "./svg/graphics/audience-segmentation-error-full-width.svg":
/*!*****************************************************************!*\
  !*** ./svg/graphics/audience-segmentation-error-full-width.svg ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path0, _path1, _path10;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgAudienceSegmentationErrorFullWidth = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "0 0 233 117"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#F3F5F7",
  d: "M2.956 80.014a32.4 32.4 0 0 0 6.283 9.673c10.459 11.015 25.911 11.949 40.083 9.193A98.3 98.3 0 0 0 88.91 81.449c6.738-4.994 13.394-11.19 22.316-11.467 3.35-.103 6.814.82 9.345 2.998 5.259 4.497 5.165 12.186 9.269 17.516 5.458 7.088 13.308 9.283 21.87 10.101 24.191 2.309 53.006-5.265 69.646-23.694 14.857-16.452 16.64-42.63-1.343-57.629-8.216-6.852-19.483-9.992-30.117-8.392-8.127 1.223-16.378 4.942-24.791 5.977-9.908 1.22-16.033-2.943-24.05-7.79C127.086.641 108.62-2.597 92.807 2.292 77.671 6.972 66.777 19.747 52.048 25.36c-12.727 4.852-27.761 4.114-38.82 12.017C.143 46.727-3.146 65.603 2.956 80.014"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#161B18",
  d: "M118.945 116.194c32.642 0 59.104-1.654 59.104-3.694s-26.462-3.694-59.104-3.694c-32.643 0-59.105 1.654-59.105 3.694s26.462 3.694 59.105 3.694",
  opacity: 0.1,
  style: {
    mixBlendMode: "multiply"
  }
}), _path2 || (_path2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  d: "M118.945 116.194c32.642 0 59.104-1.654 59.104-3.694s-26.462-3.694-59.104-3.694c-32.643 0-59.105 1.654-59.105 3.694s26.462 3.694 59.105 3.694"
})), _path3 || (_path3 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#161B18",
  strokeLinecap: "round",
  strokeLinejoin: "round",
  strokeWidth: 1.396,
  d: "M99.725 51.387c1.758 6.518 7.872 11.126 14.356 13.01 6.484 1.882 13.377 1.514 20.12 1.177 3.188-.158 6.449-.298 9.503.627s5.912 3.137 6.724 6.222c.466 1.773.121 3.686-.787 5.274"
})), _path4 || (_path4 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#161B18",
  strokeLinecap: "round",
  strokeLinejoin: "round",
  strokeWidth: 1.4,
  d: "M87.114 62.487c-1.015 16.075-6.61 30.497-2.87 48.618h-4.26M91.929 111.105h-4.261l7.53-48.618"
})), _path5 || (_path5 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#000",
  strokeLinecap: "round",
  strokeWidth: 1.396,
  d: "M73.527 57.419c-3.635 1.642-10.613 5.299-10.613 12.724"
})), _path6 || (_path6 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  d: "m103.118 84.07-2.957.269-18.04 1.632-10.545.952-1-23.491-1.74-40.88 32.912-1.199.664 30.445.09 4.099.612 28.078z"
})), _path7 || (_path7 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#999F9B",
  d: "m100.163 84.339 1.697-.155 1.261-.114-1.371-62.719-1.891.087 1.017 59.457-29.439 2.786.103 2.34.04.9 10.545-.952 18.04-1.632z"
})), _path8 || (_path8 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#000",
  strokeLinecap: "round",
  strokeWidth: 1.396,
  d: "M62.912 70.143c0 4.321 4.917 7.437 8.424 5.913"
})), _path9 || (_path9 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#7B807D",
  strokeLinecap: "round",
  strokeMiterlimit: 10,
  strokeWidth: 3.607,
  d: "m159.169 21.79-22.985 89.068"
})), _path0 || (_path0 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#E77D5B",
  d: "m157.57 14.897-34.151 34.35a3.61 3.61 0 0 0 .016 5.1 3.6 3.6 0 0 0 1.62.929l46.822 12.4a3.606 3.606 0 0 0 4.404-4.435l-12.674-46.745a3.6 3.6 0 0 0-2.557-2.542 3.6 3.6 0 0 0-3.48.942"
})), _path1 || (_path1 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#962C0A",
  d: "m153.345 35.252 2.003-7.566 3.905 1.034-2.003 7.566-2.874 9.163-3.103-.822zm-2.709 18.123a2.77 2.77 0 0 1-1.715-1.274 2.77 2.77 0 0 1-.259-2.121q.296-1.116 1.265-1.68a2.77 2.77 0 0 1 2.121-.259q1.116.296 1.68 1.266t.268 2.085a2.77 2.77 0 0 1-1.275 1.715q-.97.564-2.085.268"
})), _path10 || (_path10 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#161B18",
  strokeLinecap: "round",
  strokeLinejoin: "round",
  strokeWidth: 1.396,
  d: "M149.639 77.697a6.85 6.85 0 0 1-3.747 3.098c-3.335 1.14-7.399-.673-8.778-3.916"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgAudienceSegmentationErrorFullWidth);

/***/ }),

/***/ "./svg/graphics/audience-segmentation-introductory-graphic-desktop.svg":
/*!*****************************************************************************!*\
  !*** ./svg/graphics/audience-segmentation-introductory-graphic-desktop.svg ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _g, _defs;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgAudienceSegmentationIntroductoryGraphicDesktop = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "0 0 296 163"
}, props), _g || (_g = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
  clipPath: "url(#audience-segmentation-introductory-graphic-desktop_svg__a)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8E6CA",
  d: "M0 16C0 7.163 7.163 0 16 0h264c8.837 0 16 7.163 16 16v147H0z"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
  filter: "url(#audience-segmentation-introductory-graphic-desktop_svg__b)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 153,
  height: 174,
  x: -10,
  y: 25,
  fill: "#fff",
  rx: 11
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 53.016,
  height: 9.516,
  x: 9.031,
  y: 110.641,
  fill: "#EBEEF0",
  rx: 4.758
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 19.031,
  height: 9.516,
  x: 9.031,
  y: 95.688,
  fill: "#EBEEF0",
  rx: 4.758
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 19.031,
  height: 9.516,
  x: 9.031,
  y: 148.703,
  fill: "#EBEEF0",
  rx: 4.758
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8E6CA",
  d: "M94.672 108.602a8.836 8.836 0 0 1 8.836-8.836h13.594a8.836 8.836 0 0 1 0 17.672h-13.594a8.836 8.836 0 0 1-8.836-8.836"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 36,
  height: 9,
  x: 9,
  y: 46,
  fill: "#EBEEF0",
  rx: 4.5
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#FFDED3",
  d: "M94.672 161.617a8.836 8.836 0 0 1 8.836-8.836h13.594a8.836 8.836 0 1 1 0 17.672h-13.594a8.836 8.836 0 0 1-8.836-8.836"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
  filter: "url(#audience-segmentation-introductory-graphic-desktop_svg__c)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 153,
  height: 174,
  x: 152,
  y: 25,
  fill: "#fff",
  rx: 11
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 52.805,
  height: 9.516,
  x: 170.955,
  y: 110.641,
  fill: "#EBEEF0",
  rx: 4.758
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 18.956,
  height: 9.516,
  x: 170.955,
  y: 95.688,
  fill: "#EBEEF0",
  rx: 4.758
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 18.956,
  height: 9.516,
  x: 170.955,
  y: 148.703,
  fill: "#EBEEF0",
  rx: 4.758
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8E6CA",
  d: "M256.256 108.602a8.836 8.836 0 0 1 8.836-8.836h13.47a8.836 8.836 0 0 1 8.835 8.836 8.836 8.836 0 0 1-8.835 8.836h-13.47a8.836 8.836 0 0 1-8.836-8.836"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 36,
  height: 9,
  x: 171,
  y: 46,
  fill: "#EBEEF0",
  rx: 4.5
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#EBEEF0",
  strokeWidth: 2,
  d: "M295 73.5H152"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#FFDED3",
  d: "M256.256 161.617a8.836 8.836 0 0 1 8.836-8.836h13.47a8.836 8.836 0 0 1 8.835 8.836 8.836 8.836 0 0 1-8.835 8.836h-13.47a8.836 8.836 0 0 1-8.836-8.836"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#EBEEF0",
  strokeWidth: 2,
  d: "M143 73.5H0"
}))), _defs || (_defs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("defs", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("filter", {
  id: "audience-segmentation-introductory-graphic-desktop_svg__b",
  width: 185,
  height: 206,
  x: -26,
  y: 13,
  colorInterpolationFilters: "sRGB",
  filterUnits: "userSpaceOnUse"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feFlood", {
  floodOpacity: 0,
  result: "BackgroundImageFix"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feColorMatrix", {
  in: "SourceAlpha",
  result: "hardAlpha",
  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feOffset", {
  dy: 4
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feGaussianBlur", {
  stdDeviation: 8
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feComposite", {
  in2: "hardAlpha",
  operator: "out"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feColorMatrix", {
  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feBlend", {
  in2: "BackgroundImageFix",
  result: "effect1_dropShadow_1395_20972"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feBlend", {
  in: "SourceGraphic",
  in2: "effect1_dropShadow_1395_20972",
  result: "shape"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("filter", {
  id: "audience-segmentation-introductory-graphic-desktop_svg__c",
  width: 185,
  height: 206,
  x: 136,
  y: 13,
  colorInterpolationFilters: "sRGB",
  filterUnits: "userSpaceOnUse"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feFlood", {
  floodOpacity: 0,
  result: "BackgroundImageFix"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feColorMatrix", {
  in: "SourceAlpha",
  result: "hardAlpha",
  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feOffset", {
  dy: 4
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feGaussianBlur", {
  stdDeviation: 8
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feComposite", {
  in2: "hardAlpha",
  operator: "out"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feColorMatrix", {
  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feBlend", {
  in2: "BackgroundImageFix",
  result: "effect1_dropShadow_1395_20972"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feBlend", {
  in: "SourceGraphic",
  in2: "effect1_dropShadow_1395_20972",
  result: "shape"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("clipPath", {
  id: "audience-segmentation-introductory-graphic-desktop_svg__a"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#fff",
  d: "M0 16C0 7.163 7.163 0 16 0h264c8.837 0 16 7.163 16 16v147H0z"
})))));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgAudienceSegmentationIntroductoryGraphicDesktop);

/***/ }),

/***/ "./svg/graphics/audience-segmentation-introductory-graphic-mobile.svg":
/*!****************************************************************************!*\
  !*** ./svg/graphics/audience-segmentation-introductory-graphic-mobile.svg ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path, _path2, _g, _defs;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgAudienceSegmentationIntroductoryGraphicMobile = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "0 0 343 123"
}, props), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
  clipPath: "url(#audience-segmentation-introductory-graphic-mobile_svg__a)"
}, _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8E6CA",
  d: "M41.064 27.146a64 64 0 0 1 6.51-5.868C69.418 4.126 87.464 4.153 112.45 7.283c16.891 2.116 26.759 10.167 49.788 8.9s28.929-7.127 57.117-5.25c22.315 1.487 32.324 5.897 52.163 16.213 18.36 9.549 35.031 26.324 43.408 48.509 14.361 38.026-11.243 106.466-45.58 109.693-24.881 2.339-45.414-25.243-70.527-18.855-15.47 3.936-24.646 20.444-36.581 31.339-13.925 12.711-43.922 11.912-60.227 5.129-15.538-6.464-30.653-19.276-35.728-38.145-3.863-14.369-4.916-31.498-15.733-44.622-13.09-15.883-21.087-22.968-25.581-44.54-3.903-18.734 4.494-36.505 16.095-48.508"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("mask", {
  id: "audience-segmentation-introductory-graphic-mobile_svg__b",
  width: 295,
  height: 203,
  x: 24,
  y: 5,
  maskUnits: "userSpaceOnUse",
  style: {
    maskType: "alpha"
  }
}, _path2 || (_path2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8E6CA",
  d: "M41.064 27.146a64 64 0 0 1 6.51-5.868C69.418 4.126 87.464 4.153 112.45 7.283c16.891 2.116 26.759 10.167 49.788 8.9s28.929-7.127 57.117-5.25c22.315 1.487 32.324 5.897 52.163 16.213 18.36 9.549 35.031 26.324 43.408 48.509 14.361 38.026-11.243 106.466-45.58 109.693-24.881 2.339-45.414-25.243-70.527-18.855-15.47 3.936-24.646 20.444-36.581 31.339-13.925 12.711-43.922 11.912-60.227 5.129-15.538-6.464-30.653-19.276-35.728-38.145-3.863-14.369-4.916-31.498-15.733-44.622-13.09-15.883-21.087-22.968-25.581-44.54-3.903-18.734 4.494-36.505 16.095-48.508"
}))), _g || (_g = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
  mask: "url(#audience-segmentation-introductory-graphic-mobile_svg__b)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
  filter: "url(#audience-segmentation-introductory-graphic-mobile_svg__c)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 100.401,
  height: 136.493,
  x: 71.449,
  y: 21.433,
  fill: "#fff",
  rx: 7.218
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 34.79,
  height: 6.244,
  x: 83.941,
  y: 77.631,
  fill: "#EBEEF0",
  rx: 3.122
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 12.489,
  height: 6.244,
  x: 83.941,
  y: 67.819,
  fill: "#EBEEF0",
  rx: 3.122
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 12.489,
  height: 6.244,
  x: 83.941,
  y: 99.983,
  fill: "#EBEEF0",
  rx: 3.122
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8E6CA",
  d: "M140.133 76.293a5.8 5.8 0 0 1 5.798-5.798h8.921a5.798 5.798 0 0 1 0 11.596h-8.921a5.8 5.8 0 0 1-5.798-5.798"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 23.624,
  height: 5.906,
  x: 83.926,
  y: 35.213,
  fill: "#EBEEF0",
  rx: 2.953
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#FFDED3",
  d: "M140.133 108.458a5.8 5.8 0 0 1 5.798-5.798h8.921a5.798 5.798 0 0 1 0 11.597h-8.921a5.8 5.8 0 0 1-5.798-5.799"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 36.574,
  height: 6.244,
  x: 83.043,
  y: 109.796,
  fill: "#EBEEF0",
  rx: 3.122
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#EBEEF0",
  strokeWidth: 1.312,
  d: "M171.848 53.259H72.103"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
  filter: "url(#audience-segmentation-introductory-graphic-mobile_svg__d)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 100.401,
  height: 136.493,
  x: 184.973,
  y: 21.433,
  fill: "#fff",
  rx: 7.218
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 34.652,
  height: 6.244,
  x: 197.414,
  y: 77.631,
  fill: "#EBEEF0",
  rx: 3.122
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 12.439,
  height: 6.244,
  x: 197.414,
  y: 67.819,
  fill: "#EBEEF0",
  rx: 3.122
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 12.439,
  height: 6.244,
  x: 197.41,
  y: 99.983,
  fill: "#EBEEF0",
  rx: 3.122
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8E6CA",
  d: "M253.391 76.293a5.8 5.8 0 0 1 5.798-5.798h8.839a5.798 5.798 0 0 1 0 11.596h-8.839a5.8 5.8 0 0 1-5.798-5.798"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 23.624,
  height: 5.906,
  x: 197.449,
  y: 35.213,
  fill: "#EBEEF0",
  rx: 2.953
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#EBEEF0",
  strokeWidth: 1.312,
  d: "M278.82 53.259h-93.838"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#FFDED3",
  d: "M253.391 108.458a5.8 5.8 0 0 1 5.798-5.798h8.839a5.798 5.798 0 0 1 0 11.597h-8.839a5.8 5.8 0 0 1-5.798-5.799"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 36.429,
  height: 6.244,
  x: 196.523,
  y: 109.796,
  fill: "#EBEEF0",
  rx: 3.122
})))), _defs || (_defs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("defs", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("filter", {
  id: "audience-segmentation-introductory-graphic-mobile_svg__c",
  width: 132.402,
  height: 168.493,
  x: 55.449,
  y: 9.433,
  colorInterpolationFilters: "sRGB",
  filterUnits: "userSpaceOnUse"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feFlood", {
  floodOpacity: 0,
  result: "BackgroundImageFix"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feColorMatrix", {
  in: "SourceAlpha",
  result: "hardAlpha",
  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feOffset", {
  dy: 4
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feGaussianBlur", {
  stdDeviation: 8
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feComposite", {
  in2: "hardAlpha",
  operator: "out"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feColorMatrix", {
  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feBlend", {
  in2: "BackgroundImageFix",
  result: "effect1_dropShadow_2898_16651"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feBlend", {
  in: "SourceGraphic",
  in2: "effect1_dropShadow_2898_16651",
  result: "shape"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("filter", {
  id: "audience-segmentation-introductory-graphic-mobile_svg__d",
  width: 132.402,
  height: 168.493,
  x: 168.973,
  y: 9.433,
  colorInterpolationFilters: "sRGB",
  filterUnits: "userSpaceOnUse"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feFlood", {
  floodOpacity: 0,
  result: "BackgroundImageFix"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feColorMatrix", {
  in: "SourceAlpha",
  result: "hardAlpha",
  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feOffset", {
  dy: 4
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feGaussianBlur", {
  stdDeviation: 8
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feComposite", {
  in2: "hardAlpha",
  operator: "out"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feColorMatrix", {
  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feBlend", {
  in2: "BackgroundImageFix",
  result: "effect1_dropShadow_2898_16651"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feBlend", {
  in: "SourceGraphic",
  in2: "effect1_dropShadow_2898_16651",
  result: "shape"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("clipPath", {
  id: "audience-segmentation-introductory-graphic-mobile_svg__a"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#fff",
  d: "M0 0h343v128H0z"
})))));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgAudienceSegmentationIntroductoryGraphicMobile);

/***/ }),

/***/ "./svg/graphics/banner-audience-segmentation-setup-cta-mobile.svg?url":
/*!****************************************************************************!*\
  !*** ./svg/graphics/banner-audience-segmentation-setup-cta-mobile.svg?url ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("data:image/svg+xml;base64, ");

/***/ }),

/***/ "./svg/graphics/banner-audience-segmentation-setup-cta.svg?url":
/*!*********************************************************************!*\
  !*** ./svg/graphics/banner-audience-segmentation-setup-cta.svg?url ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("data:image/svg+xml;base64, ");

/***/ }),

/***/ "./svg/graphics/banner-conversions-setup-cta-mobile.svg?url":
/*!******************************************************************!*\
  !*** ./svg/graphics/banner-conversions-setup-cta-mobile.svg?url ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("data:image/svg+xml;base64, ");

/***/ }),

/***/ "./svg/graphics/banner-conversions-setup-cta.svg?url":
/*!***********************************************************!*\
  !*** ./svg/graphics/banner-conversions-setup-cta.svg?url ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("data:image/svg+xml;base64, ");

/***/ }),

/***/ "./svg/graphics/banner-enhanced-measurement-setup-cta-mobile.svg?url":
/*!***************************************************************************!*\
  !*** ./svg/graphics/banner-enhanced-measurement-setup-cta-mobile.svg?url ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("data:image/svg+xml;base64, ");

/***/ }),

/***/ "./svg/graphics/banner-enhanced-measurement-setup-cta.svg?url":
/*!********************************************************************!*\
  !*** ./svg/graphics/banner-enhanced-measurement-setup-cta.svg?url ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("data:image/svg+xml;base64, ");

/***/ }),

/***/ "./svg/graphics/banner-error.svg?url":
/*!*******************************************!*\
  !*** ./svg/graphics/banner-error.svg?url ***!
  \*******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("data:image/svg+xml;base64, ");

/***/ }),

/***/ "./svg/graphics/banner-warning.svg?url":
/*!*********************************************!*\
  !*** ./svg/graphics/banner-warning.svg?url ***!
  \*********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ("data:image/svg+xml;base64, ");

/***/ }),

/***/ "./svg/graphics/key-metrics-no-selected-items.svg":
/*!********************************************************!*\
  !*** ./svg/graphics/key-metrics-no-selected-items.svg ***!
  \********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path, _g, _rect, _rect2, _rect3, _path2, _rect4, _g2, _rect5, _rect6, _rect7, _path3, _rect8, _g3, _rect9, _rect0, _rect1, _path4, _rect10, _path5, _g4, _defs;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgKeyMetricsNoSelectedItems = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "0 0 383 238"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8E6CA",
  d: "M59.238 58.571c-2.136 20.178 4.272 29.099 20.48 53.216 16.209 24.118-29.092 62.914 5.475 101.268 33.827 37.532 69.419.009 111.314-4.555 29.443-3.208 57.819 12.98 90.86 5.9s46.385-42.599 43.153-68.059c-5.59-44.041-26.24-49.107-34.893-66.461s2.902-52.997-30.287-73.16-76.71 14.42-112.503 12.37c-20.651-1.182-40.932-4.995-59.264.86-18.53 5.918-32.662 22.571-34.335 38.621"
})), _g || (_g = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
  filter: "url(#key-metrics-no-selected-items_svg__a)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 130.621,
  height: 89.651,
  x: 242.455,
  y: 45.266,
  fill: "#fff",
  rx: 10.957,
  transform: "rotate(15 242.455 45.266)"
}))), _rect || (_rect = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 24.903,
  height: 7.969,
  x: 253.726,
  y: 64.785,
  fill: "#EBEEF0",
  rx: 3.985,
  transform: "rotate(15 253.726 64.785)"
})), _rect2 || (_rect2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 49.806,
  height: 19.923,
  x: 249.342,
  y: 81.144,
  fill: "#FFDED3",
  rx: 9.961,
  transform: "rotate(15 249.342 81.144)"
})), _rect3 || (_rect3 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 99.428,
  height: 8.773,
  x: 240.436,
  y: 114.357,
  fill: "#EBEEF0",
  rx: 3.985,
  transform: "rotate(15 240.436 114.357)"
})), _path2 || (_path2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#fff",
  strokeLinecap: "round",
  strokeLinejoin: "round",
  strokeWidth: 1.494,
  d: "m256.195 90.198 4.644 8.044m0 0 1.412-4.986m-1.412 4.986-5.023-1.27"
})), _rect4 || (_rect4 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 19.923,
  height: 5.977,
  x: 268.706,
  y: 93.551,
  fill: "#fff",
  rx: 1.992,
  transform: "rotate(15 268.706 93.55)"
})), _g2 || (_g2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
  filter: "url(#key-metrics-no-selected-items_svg__b)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 130.621,
  height: 89.68,
  x: 13.887,
  y: 79.094,
  fill: "#fff",
  rx: 10.957,
  transform: "rotate(-15 13.887 79.094)"
}))), _rect5 || (_rect5 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 62.386,
  height: 7.798,
  x: 32.989,
  y: 90.122,
  fill: "#EBEEF0",
  rx: 3.899,
  transform: "rotate(-15 32.99 90.122)"
})), _rect6 || (_rect6 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 49.806,
  height: 19.923,
  x: 37.691,
  y: 106.902,
  fill: "#FFDED3",
  rx: 9.961,
  transform: "rotate(-15 37.691 106.902)"
})), _rect7 || (_rect7 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 99.428,
  height: 7.798,
  x: 46.612,
  y: 140.967,
  fill: "#EBEEF0",
  rx: 3.899,
  transform: "rotate(-15 46.612 140.967)"
})), _path3 || (_path3 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#fff",
  strokeLinecap: "round",
  strokeLinejoin: "round",
  strokeWidth: 1.494,
  d: "m48.152 111.318 8.044 4.645m0 0-1.27-5.024m1.27 5.024-4.986 1.411"
})), _rect8 || (_rect8 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 19.923,
  height: 5.977,
  x: 60.663,
  y: 107.966,
  fill: "#fff",
  rx: 1.992,
  transform: "rotate(-15 60.663 107.966)"
})), _g3 || (_g3 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
  filter: "url(#key-metrics-no-selected-items_svg__c)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 130.621,
  height: 89.68,
  x: 126.251,
  y: 37.4,
  fill: "#fff",
  rx: 10.957
}))), _rect9 || (_rect9 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 98.333,
  height: 7.867,
  x: 143.013,
  y: 53.134,
  fill: "#EBEEF0",
  rx: 3.933
})), _rect0 || (_rect0 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 49.806,
  height: 19.923,
  x: 142.369,
  y: 70.423,
  fill: "#B8E6CA",
  rx: 9.961
})), _rect1 || (_rect1 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 33.04,
  height: 7.867,
  x: 143.013,
  y: 105.84,
  fill: "#EBEEF0",
  rx: 3.933
})), _path4 || (_path4 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#fff",
  strokeLinecap: "round",
  strokeLinejoin: "round",
  strokeWidth: 1.494,
  d: "m151.336 84.036 6.568-6.567m0 0-5.182-.073m5.182.073.073 5.18"
})), _rect10 || (_rect10 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("rect", {
  width: 19.923,
  height: 5.977,
  x: 164.287,
  y: 77.395,
  fill: "#fff",
  rx: 1.992
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("mask", {
  id: "key-metrics-no-selected-items_svg__d",
  width: 273,
  height: 230,
  x: 58,
  y: 0,
  maskUnits: "userSpaceOnUse",
  style: {
    maskType: "alpha"
  }
}, _path5 || (_path5 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8E6CA",
  d: "M59.237 58.571C57.1 78.75 63.509 87.67 79.717 111.787c16.209 24.118-29.091 62.914 5.475 101.268 33.827 37.532 69.419.009 111.314-4.555 29.444-3.208 57.82 12.98 90.86 5.9s46.385-42.599 43.153-68.059c-5.59-44.041-26.24-49.107-34.893-66.461s2.902-52.997-30.287-73.16-76.71 14.42-112.503 12.37c-20.651-1.182-40.932-4.995-59.264.86C75.042 25.868 60.91 42.52 59.237 58.57"
}))), _g4 || (_g4 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
  mask: "url(#key-metrics-no-selected-items_svg__d)"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#CBD0D3",
  strokeMiterlimit: 10,
  strokeWidth: 3.147,
  d: "m227.674 108.973 11.312-8.418M218.925 98.852l2.868-12.68M205.623 102.87l-5.375-13.037"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#3C7251",
  strokeLinejoin: "round",
  strokeWidth: 9.44,
  d: "M63.953 190.487c16.127 12.193 38.716 10.349 55.335 5.162 16.618-5.187 31.107-14.61 45.314-23.791 6.717-4.337 13.617-8.738 21.496-11.119s17.057-2.39 22.958 1.658c3.392 2.328 5.205 5.923 5.36 9.702"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#CBD0D3",
  strokeLinecap: "round",
  strokeMiterlimit: 10,
  strokeWidth: 9.44,
  d: "m215.831 109.67-19.169 71.73"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#161B18",
  strokeMiterlimit: 10,
  strokeWidth: 9.44,
  d: "m213.975 116.472-19.169 71.731"
}))), _defs || (_defs = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("defs", null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("filter", {
  id: "key-metrics-no-selected-items_svg__a",
  width: 176.33,
  height: 147.36,
  x: 205.773,
  y: 35.772,
  colorInterpolationFilters: "sRGB",
  filterUnits: "userSpaceOnUse"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feFlood", {
  floodOpacity: 0,
  result: "BackgroundImageFix"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feColorMatrix", {
  in: "SourceAlpha",
  result: "hardAlpha",
  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feOffset", {
  dy: 3.985
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feGaussianBlur", {
  stdDeviation: 7.969
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feComposite", {
  in2: "hardAlpha",
  operator: "out"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feColorMatrix", {
  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feBlend", {
  in2: "BackgroundImageFix",
  result: "effect1_dropShadow_2200_11981"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feBlend", {
  in: "SourceGraphic",
  in2: "effect1_dropShadow_2200_11981",
  result: "shape"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("filter", {
  id: "key-metrics-no-selected-items_svg__b",
  width: 176.337,
  height: 147.388,
  x: 0.409,
  y: 35.793,
  colorInterpolationFilters: "sRGB",
  filterUnits: "userSpaceOnUse"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feFlood", {
  floodOpacity: 0,
  result: "BackgroundImageFix"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feColorMatrix", {
  in: "SourceAlpha",
  result: "hardAlpha",
  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feOffset", {
  dy: 3.985
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feGaussianBlur", {
  stdDeviation: 7.969
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feComposite", {
  in2: "hardAlpha",
  operator: "out"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feColorMatrix", {
  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feBlend", {
  in2: "BackgroundImageFix",
  result: "effect1_dropShadow_2200_11981"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feBlend", {
  in: "SourceGraphic",
  in2: "effect1_dropShadow_2200_11981",
  result: "shape"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("filter", {
  id: "key-metrics-no-selected-items_svg__c",
  width: 162.497,
  height: 121.556,
  x: 110.313,
  y: 25.447,
  colorInterpolationFilters: "sRGB",
  filterUnits: "userSpaceOnUse"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feFlood", {
  floodOpacity: 0,
  result: "BackgroundImageFix"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feColorMatrix", {
  in: "SourceAlpha",
  result: "hardAlpha",
  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feOffset", {
  dy: 3.985
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feGaussianBlur", {
  stdDeviation: 7.969
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feComposite", {
  in2: "hardAlpha",
  operator: "out"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feColorMatrix", {
  values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feBlend", {
  in2: "BackgroundImageFix",
  result: "effect1_dropShadow_2200_11981"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("feBlend", {
  in: "SourceGraphic",
  in2: "effect1_dropShadow_2200_11981",
  result: "shape"
})))));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgKeyMetricsNoSelectedItems);

/***/ }),

/***/ "./svg/graphics/no-audience-banner-graphic.svg":
/*!*****************************************************!*\
  !*** ./svg/graphics/no-audience-banner-graphic.svg ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path0, _path1, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29, _path30, _path31, _path32, _path33, _path34, _path35, _path36, _path37, _path38, _path39, _path40, _path41, _path42, _path43, _path44, _path45, _path46, _path47, _path48, _path49, _path50, _path51, _path52, _path53, _path54, _path55, _path56, _path57, _path58, _path59, _path60, _path61, _path62, _path63, _path64, _path65, _path66, _path67, _path68;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgNoAudienceBannerGraphic = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "0 0 211 109"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8E6CA",
  d: "M2.675 72.31a29.3 29.3 0 0 0 5.678 8.74c9.451 9.955 23.416 10.799 36.223 8.308a88.8 88.8 0 0 0 35.776-15.752c6.09-4.513 12.104-10.113 20.167-10.363 3.027-.093 6.158.741 8.445 2.71 4.753 4.063 4.668 11.012 8.377 15.829 4.932 6.405 12.026 8.389 19.764 9.128 21.862 2.086 47.902-4.758 62.939-21.412 13.426-14.868 15.038-38.526-1.214-52.08-7.425-6.192-17.606-9.03-27.216-7.584-7.345 1.105-14.801 4.467-22.404 5.401-8.954 1.103-14.49-2.659-21.734-7.04C114.852.58 98.164-2.345 83.874 2.072 70.195 6.301 60.35 17.846 47.04 22.918c-11.502 4.385-25.089 3.717-35.082 10.86C.133 42.228-2.84 59.286 2.675 72.31"
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#161B18",
  d: "M108.273 109c54.612 0 98.883-1.735 98.883-3.874s-44.271-3.875-98.883-3.875-98.882 1.735-98.882 3.875S53.66 109 108.273 109",
  opacity: 0.1,
  style: {
    mixBlendMode: "multiply"
  }
}), _path2 || (_path2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  d: "M108.273 109c54.612 0 98.883-1.735 98.883-3.874s-44.271-3.875-98.883-3.875-98.882 1.735-98.882 3.875S53.66 109 108.273 109"
})), _path3 || (_path3 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#161B18",
  strokeLinecap: "round",
  strokeLinejoin: "round",
  strokeWidth: 1.472,
  d: "M134.765 53.225c-1.065 16.927-6.936 32.112-3.012 51.193h-4.468M139.814 104.418h-4.47l7.9-51.193"
})), _path4 || (_path4 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#000",
  strokeLinecap: "round",
  strokeWidth: 1.468,
  d: "M120.504 36.651c-3.814 1.73-11.135 5.58-11.135 13.398M147.266 35.787c3.493 1.787 11.06 7.678 11.977 13.225"
})), _path5 || (_path5 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#77AD8C",
  d: "m151.555 75.952-3.102.282-18.926 1.719-11.063 1.002-1.049-24.735-1.825-43.046 34.528-1.262.697 32.058.094 4.316.642 29.565z"
})), _path6 || (_path6 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#5C9271",
  d: "m148.453 76.234 1.78-.162 1.323-.12-1.439-66.042-1.983.091 1.281 63.2-24.976 2.127.862-19.15-7.844-1.074.86 20.438.107 2.465.041.946 11.063-1.002 18.927-1.719z"
})), _path7 || (_path7 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  d: "M135.891 70.752c.032.916-.392-20.197-.629-27.044-6.628-3.008-13.797-3.559-20.67-1.228l.628 27.043c6.874-2.33 14.043-1.779 20.671 1.23"
})), _path8 || (_path8 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#EBEEF0",
  d: "M135.926 70.752c.01.916-.547-20.194-.629-27.044 6.481-3.306 13.617-4.182 20.592-2.166l.629 27.043c-6.975-2.015-14.111-1.139-20.592 2.167"
})), _path9 || (_path9 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  fillRule: "evenodd",
  d: "M133.233 60.796c-.083-3.907-.202-9.298-.333-14.96l.196-.005a8404 8404 0 0 1 .43 19.559l.023 1.18.004.262v.05l-.001.008a.18.18 0 0 1-.093.083.18.18 0 0 1-.1-.08l-.002-.007v-.007l-.001-.02h.001v-.025l-.004-.26-.023-1.18zm.126 6.063a.2.2 0 0 1 .093-.08.2.2 0 0 1 .097.073zm.194.01v-.001zM130.917 60.007c-.084-3.912-.203-9.29-.334-14.911l.197-.004a10935 10935 0 0 1 .432 19.528l.024 1.198.004.271.001.05v.008l-.004.02c-.054.062-.17.035-.189-.002l-.003-.015-.001-.005v-.053000000000000005l-.005-.27-.024-1.198c-.022-1.071-.055-2.66-.098-4.617m.129 6.12.193-.006-.001-.006c-.02-.037-.135-.063-.19-.002zM128.613 59.401c-.086-3.923-.206-9.285-.335-14.834l.197-.005a9890 9890 0 0 1 .459 20.704l.005.284.001.055v.008l-.001.006a.18.18 0 0 1-.094.087.2.2 0 0 1-.1-.082l-.001-.007-.001-.017h.001l-.001-.047-.005-.283-.025-1.221zm.131 6.199.195-.007a.2.2 0 0 0-.1-.081.2.2 0 0 0-.095.086zM126.303 58.977c-.087-3.938-.207-9.284-.334-14.744l.196-.005c.127 5.46.248 10.807.335 14.744l.102 4.688.032 1.545.001.061v.012l-.001.009c-.005.02-.109.084-.191.017l-.004-.02v-.008l-.001-.007h.001v-.001l-.001-.06-.006-.296-.026-1.248zm.136 6.292.195-.007-.004-.018c-.081-.066-.186-.003-.19.017zM124.002 58.73c-.088-3.958-.209-9.292-.334-14.653l.196-.004a14129 14129 0 0 1 .439 19.391l.028 1.28.006.312.002.068v.015l-.002.014c-.08.078-.19.014-.194-.004l-.001-.007v-.009000000000000001l.196-.006v-.005c-.005-.018-.114-.082-.194-.004l-.002.014v.001-.007l-.001-.066-.006-.312-.028-1.28zM121.709 58.698c-.09-3.97-.211-9.281-.333-14.54l.196-.005a15731 15731 0 0 1 .44 19.316l.029 1.306.006.327.002.074v.021a.2.2 0 0 1-.021.056.17.17 0 0 1-.175-.05v-.006l-.001-.004.197-.007-.001-.003a.16.16 0 0 0-.174-.05.2.2 0 0 0-.021.056v.003l-.001-.013-.001-.073-.007-.326-.028-1.307zM119.414 58.855c-.091-3.986-.212-9.28-.332-14.44l.196-.005c.12 5.16.242 10.454.333 14.44l.109 4.818.03 1.336.008.34.001.082.001.017v.006c0 .004-.098.096-.196.009l-.001-.007v-.002l.197-.006-.001-.006c-.098-.087-.196.005-.196.01v.001-.018000000000000002l-.002-.081-.007-.34-.03-1.336zM116.797 44.873l.196-.004.489 21.033h-.01l-.186.005z",
  clipRule: "evenodd"
})), _path0 || (_path0 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8BDB9",
  fillRule: "evenodd",
  d: "M133.317 67.22c-5.153-1.86-10.563-2.237-15.85-.939a.388.388 0 1 1-.188-.754c5.447-1.338 11.016-.948 16.306.963a.388.388 0 1 1-.268.73M133.267 64.222c-5.159-1.867-10.574-2.245-15.866-.946a.388.388 0 1 1-.189-.754c5.454-1.34 11.027-.947 16.323.97a.387.387 0 0 1 .234.498.39.39 0 0 1-.502.232M133.204 61.217c-5.162-1.867-10.576-2.245-15.866-.946a.393.393 0 0 1-.475-.284.39.39 0 0 1 .287-.47c5.45-1.339 11.023-.946 16.323.97a.39.39 0 0 1 .234.498.393.393 0 0 1-.503.232M133.134 58.212c-5.163-1.866-10.576-2.245-15.866-.946a.388.388 0 1 1-.189-.755c5.451-1.338 11.024-.945 16.323.97a.386.386 0 0 1 .234.499.39.39 0 0 1-.502.232M133.071 55.213c-5.163-1.872-10.584-2.252-15.881-.95a.388.388 0 1 1-.189-.754c5.459-1.342 11.038-.947 16.339.974a.39.39 0 0 1 .234.498.393.393 0 0 1-.503.232M133.001 52.208c-5.164-1.87-10.584-2.251-15.882-.95a.389.389 0 1 1-.188-.755c5.458-1.34 11.038-.945 16.339.975a.388.388 0 1 1-.269.73",
  clipRule: "evenodd"
})), _path1 || (_path1 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8BDB9",
  d: "M116.886 44.87c5.378-1.32 10.878-.934 16.11.963l.054 2.999c-5.227-1.891-10.721-2.276-16.094-.957z"
})), _path10 || (_path10 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8BDB9",
  fillRule: "evenodd",
  d: "m117.284 45.176.051 2.21c5.118-1.161 10.331-.806 15.312.893l-.039-2.17c-4.989-1.759-10.21-2.127-15.324-.934m-.494-.682c5.459-1.341 11.038-.947 16.339.975l.253.091.069 3.832-.536-.194c-5.159-1.867-10.574-2.245-15.866-.945l-.475.116-.089-3.8z",
  clipRule: "evenodd"
})), _path11 || (_path11 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#EBEEF0",
  fillRule: "evenodd",
  d: "M137.87 60.692a7073 7073 0 0 1-.362-14.961l.196-.005a8741 8741 0 0 0 .48 19.558l.04 1.44v.025h.001l.001.02-.001.003v.012a.2.2 0 0 1-.097.084.18.18 0 0 1-.097-.08l-.002-.008v-.003l-.002-.046-.008-.262-.032-1.18c-.028-1.06-.068-2.644-.117-4.597m.352 6.057a.2.2 0 0 0-.096-.076.2.2 0 0 0-.093.078zm-.193.018v.001zM140.148 59.798c-.098-3.912-.228-9.29-.359-14.91l.196-.005a10307 10307 0 0 0 .507 20.724l.008.27.001.036h.001v.023l-.002.015c-.018.038-.132.07-.189.01l-.005-.02v-.008l-.002-.05-.008-.27-.032-1.199c-.027-1.07-.068-2.66-.116-4.616m.352 6.115-.003-.014c-.057-.06-.172-.027-.189.01l-.001.006zM142.426 59.088c-.097-3.923-.227-9.285-.356-14.835l.197-.004c.129 5.55.258 10.911.355 14.834l.116 4.647.032 1.22.008.284.002.047v.024a.2.2 0 0 1-.096.086.2.2 0 0 1-.099-.082l-.001-.006v-.008l-.002-.055-.008-.284-.032-1.22zm.353 6.193v-.002a.2.2 0 0 0-.099-.082.18.18 0 0 0-.095.086zM144.711 58.559c-.096-3.937-.225-9.283-.352-14.744l.197-.004c.127 5.46.255 10.806.351 14.743l.115 4.688.032 1.247.008.297.002.059v.001h.001v.011000000000000001l-.001.004-.003.02c-.078.07-.186.012-.191-.008l-.002-.01v-.011l-.002-.06-.008-.298-.032-1.248zm.353 6.287-.001-.008c-.006-.02-.113-.078-.191-.008l-.004.018zm-.196.007",
  clipRule: "evenodd"
})), _path12 || (_path12 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  fillRule: "evenodd",
  d: "M137.979 66.391c5.195-2.149 10.74-2.792 16.244-1.703a.389.389 0 1 1-.153.762c-5.342-1.057-10.728-.435-15.789 1.659a.394.394 0 0 1-.513-.21.39.39 0 0 1 .211-.508M137.889 63.393c5.201-2.155 10.751-2.8 16.261-1.71a.39.39 0 0 1 .308.457.39.39 0 0 1-.461.305c-5.348-1.058-10.739-.434-15.806 1.665a.39.39 0 0 1-.512-.209.387.387 0 0 1 .21-.508M137.823 60.389c5.2-2.155 10.749-2.8 16.256-1.71a.388.388 0 1 1-.153.762c-5.345-1.057-10.735-.434-15.801 1.665a.394.394 0 0 1-.513-.21.39.39 0 0 1 .211-.508M137.749 57.383c5.2-2.154 10.748-2.8 16.256-1.71a.388.388 0 1 1-.154.762c-5.344-1.057-10.735-.433-15.8 1.665a.393.393 0 0 1-.513-.209.39.39 0 0 1 .211-.508M137.663 54.385c5.206-2.16 10.761-2.807 16.276-1.716a.389.389 0 1 1-.153.763c-5.352-1.06-10.75-.434-15.821 1.67a.394.394 0 0 1-.513-.208.39.39 0 0 1 .211-.509M137.596 51.38c5.206-2.16 10.762-2.808 16.277-1.716a.39.39 0 0 1 .308.457.393.393 0 0 1-.462.305c-5.352-1.06-10.749-.432-15.82 1.67a.393.393 0 0 1-.513-.208.387.387 0 0 1 .21-.508M137.542 48.368c5.201-2.154 10.751-2.8 16.26-1.71a.389.389 0 1 1-.153.763c-5.346-1.058-10.739-.434-15.805 1.665a.393.393 0 0 1-.513-.21.39.39 0 0 1 .211-.508M137.456 45.37c5.206-2.16 10.761-2.808 16.276-1.716a.39.39 0 0 1 .308.457.39.39 0 0 1-.461.306c-5.353-1.06-10.75-.434-15.821 1.67a.394.394 0 0 1-.513-.209.39.39 0 0 1 .211-.508",
  clipRule: "evenodd"
})), _path13 || (_path13 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  d: "M137.608 45.729c5.139-2.133 10.618-2.768 16.049-1.693l.21 9.014c-5.434-1.075-10.91-.439-16.049 1.693z"
})), _path14 || (_path14 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  fillRule: "evenodd",
  d: "m138.005 45.986.19 8.184c4.901-1.928 10.097-2.52 15.267-1.592l-.191-8.22c-5.162-.96-10.364-.356-15.266 1.628m-.55-.616c5.206-2.16 10.765-2.807 16.277-1.716a.39.39 0 0 1 .315.372l.21 9.015a.39.39 0 0 1-.14.307.4.4 0 0 1-.329.083c-5.352-1.06-10.749-.434-15.82 1.67a.4.4 0 0 1-.365-.032.39.39 0 0 1-.178-.317l-.21-9.015a.39.39 0 0 1 .24-.367",
  clipRule: "evenodd"
})), _path15 || (_path15 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#000",
  strokeLinecap: "round",
  strokeWidth: 1.468,
  d: "M159.24 49.011c.761 4.603-4.117 7.506-7.486 6.434M109.37 50.05c.001 4.55 5.159 7.83 8.838 6.226"
})), _path16 || (_path16 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#161B18",
  strokeLinecap: "round",
  strokeLinejoin: "round",
  strokeWidth: 1.472,
  d: "m31.757 63.326-5.175 13.74a23 23 0 0 0-.534 1.593c-1.686 5.718-.919 11.872 1.862 17.155l4.678 8.598h-4.473"
})), _path17 || (_path17 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#161B18",
  strokeLinecap: "round",
  strokeMiterlimit: 10,
  strokeWidth: 1.472,
  d: "m39.988 67.196.768 37.221"
})), _path18 || (_path18 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#1967D2",
  strokeLinejoin: "round",
  strokeWidth: 2.748,
  d: "M31.757 63.326a27.5 27.5 0 0 0-2.058 5.225"
})), _path19 || (_path19 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#000",
  strokeLinecap: "round",
  strokeWidth: 1.468,
  d: "M47.8 52.642c4.738 2.161 9.71 4.53 10.766 11.237M13.781 61.718c-2.557 3.62-6.986 9.225-5.039 14.72"
})), _path20 || (_path20 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#70B2F5",
  d: "M1.535 51.315 54.34 35.316s5.107 29.415-22.04 34.95c-.009 0-18.561 4.185-30.764-18.952"
})), _path21 || (_path21 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#77AD8C",
  d: "M1.535 51.315 54.34 35.316s5.107 29.415-22.04 34.95c-.009 0-18.561 4.185-30.764-18.952"
})), _path22 || (_path22 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#5C9271",
  d: "M33.856 67.557S16.354 71.503 4.163 50.52l-2.628.795C13.738 74.452 32.29 70.266 32.29 70.266c10.329-2.105 15.985-7.67 19.032-13.753-3.297 4.975-8.696 9.256-17.466 11.044"
})), _path23 || (_path23 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#161B18",
  strokeLinecap: "round",
  strokeLinejoin: "round",
  strokeWidth: 1.472,
  d: "M45.22 104.418h-4.47"
})), _path24 || (_path24 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  d: "M38.095 85.802c.172.861-3.494-19.049-4.776-25.49-6.736-1.845-13.604-1.284-19.746 1.959l4.776 25.49c6.143-3.243 13.01-3.804 19.746-1.96"
})), _path25 || (_path25 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#EBEEF0",
  d: "M38.129 85.796c.152.865-3.64-19.022-4.776-25.491 5.62-4.106 12.236-6.013 19.146-5.159l4.776 25.49c-6.91-.853-13.525 1.053-19.146 5.16"
})), _path26 || (_path26 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  fillRule: "evenodd",
  d: "M34.042 76.784c-.683-3.684-1.629-8.766-2.629-14.104l.185-.033A7852 7852 0 0 1 35.233 82.2l.052.29v.011a.17.17 0 0 1-.075.093.18.18 0 0 1-.106-.06l-.003-.007v-.003l-.001-.003v-.001l-.004-.019-.003-.023-.045-.246-.204-1.113c-.184-1-.46-2.493-.802-4.335m1.057 5.717a.18.18 0 0 1 .075-.09c.05.007.09.041.103.055zM31.73 76.387A9015 9015 0 0 0 29.11 62.33l.184-.034a9008 9008 0 0 1 3.637 19.54l.055.307v.024c-.042.066-.155.058-.18.026l-.004-.013-.001-.006-.004-.016h.001l-.006-.034-.046-.255-.208-1.13zm1.068 5.77.181-.035-.002-.005c-.024-.032-.137-.04-.178.026zM29.454 76.162c-.688-3.698-1.63-8.753-2.61-13.984l.184-.033a10403 10403 0 0 1 3.636 19.517l.058.32v.008l.001.006a.18.18 0 0 1-.076.096.18.18 0 0 1-.107-.063l-.002-.006-.003-.016-.007-.045-.049-.267-.212-1.15zm1.082 5.845.183-.035a.18.18 0 0 0-.107-.063.18.18 0 0 0-.076.096zM27.204 76.11c-.69-3.712-1.631-8.752-2.596-13.898l.185-.034a13168 13168 0 0 1 3.687 19.775l.01.057.002.007v.013c0 .02-.09.095-.177.045l-.008-.023v-.003l-.002-.007-.01-.057-.051-.28-.218-1.176zm1.101 5.932.184-.035-.006-.017c-.088-.05-.177.025-.178.045zm.185-.03v-.001M24.99 76.224c-.695-3.732-1.634-8.76-2.58-13.813l.184-.033a16041 16041 0 0 1 3.637 19.486l.055.294q.008.046.011.064l.003.028c-.063.086-.176.042-.183.025l-.002-.006v-.003l-.002-.005.184-.036v-.005c-.008-.016-.12-.06-.184.026v.013999999999999999-.006l-.066-.357-.224-1.206zM22.813 76.54c-.698-3.743-1.634-8.749-2.563-13.706l.185-.034a20173 20173 0 0 1 3.701 19.818l.003.014v.005a.2.2 0 0 1-.01.057c-.09.047-.172-.018-.174-.022v-.006l-.002-.002.185-.037-.001-.003c-.001-.004-.083-.069-.173-.021a.2.2 0 0 0-.01.059l-.003-.012-.012-.07-.057-.307-.23-1.232zM20.668 77.034l-2.547-13.61.184-.034a29372 29372 0 0 1 3.69 19.733l.015.076.003.017v.005c.001.004-.077.105-.183.038l-.001-.006v-.002l.184-.035-.002-.006c-.106-.067-.184.035-.183.038v.002-.002l-.003-.016-.014-.076-.06-.32-.235-1.26zM16.023 64.202l.185-.034 3.715 19.826-.01.001-.165.03-.01.002z",
  clipRule: "evenodd"
})), _path27 || (_path27 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8BDB9",
  fillRule: "evenodd",
  d: "M35.112 82.85c-5.163-.983-10.34-.522-15.14 1.505a.377.377 0 0 1-.493-.197.37.37 0 0 1 .198-.488c4.947-2.089 10.276-2.56 15.576-1.551a.373.373 0 0 1 .298.436.375.375 0 0 1-.44.295M34.601 80.02c-5.17-.987-10.35-.527-15.157 1.502a.377.377 0 0 1-.493-.197.37.37 0 0 1 .198-.488c4.953-2.09 10.287-2.561 15.593-1.548a.373.373 0 0 1 .299.436.375.375 0 0 1-.44.296M34.078 77.187c-5.173-.986-10.353-.526-15.157 1.501a.377.377 0 0 1-.493-.197.37.37 0 0 1 .198-.488c4.95-2.09 10.283-2.56 15.593-1.547a.373.373 0 1 1-.141.731M33.547 74.355c-5.173-.986-10.354-.527-15.157 1.5a.377.377 0 0 1-.493-.196.37.37 0 0 1 .198-.489c4.95-2.089 10.282-2.559 15.593-1.547a.373.373 0 0 1 .298.436.375.375 0 0 1-.44.296M33.023 71.527c-5.175-.991-10.362-.532-15.172 1.5a.377.377 0 0 1-.493-.197.37.37 0 0 1 .198-.489c4.957-2.093 10.296-2.563 15.609-1.545a.373.373 0 1 1-.142.73M32.492 68.695c-5.175-.99-10.362-.532-15.172 1.5a.377.377 0 0 1-.494-.198.37.37 0 0 1 .198-.488c4.957-2.093 10.297-2.562 15.61-1.546a.373.373 0 1 1-.142.732",
  clipRule: "evenodd"
})), _path28 || (_path28 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8BDB9",
  d: "M16.109 64.187c4.884-2.062 10.147-2.527 15.39-1.523l.515 2.83c-5.238-1-10.495-.535-15.374 1.525z"
})), _path29 || (_path29 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8BDB9",
  fillRule: "evenodd",
  d: "m16.538 64.414.39 2.084c4.663-1.872 9.65-2.323 14.625-1.468l-.373-2.047c-4.991-.91-9.988-.47-14.642 1.431m-.572-.57c4.957-2.093 10.297-2.563 15.609-1.545l.253.048.658 3.614-.538-.102c-5.169-.987-10.35-.527-15.157 1.502l-.43.182-.672-3.582z",
  clipRule: "evenodd"
})), _path30 || (_path30 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#EBEEF0",
  fillRule: "evenodd",
  d: "M38.41 75.985c-.698-3.682-1.656-8.762-2.656-14.1l.185-.033a7932 7932 0 0 0 3.477 18.43l.26 1.357.005.023h.001l.004.022v.011a.17.17 0 0 1-.077.094.18.18 0 0 1-.105-.06l-.003-.01-.009-.044-.048-.246-.212-1.112zm1.269 5.677a.2.2 0 0 0-.102-.057.2.2 0 0 0-.077.088zm-.18.046v.002zM40.426 74.796c-.697-3.687-1.652-8.755-2.645-14.053l.185-.034a9326 9326 0 0 0 3.684 19.53l.049.255.006.034h.001l.003.016v.019c-.01.04-.113.087-.176.04l-.008-.023-.001-.004-.01-.046-.049-.256c-.046-.242-.12-.624-.215-1.128zm1.278 5.732-.005-.013c-.063-.047-.166 0-.177.039v.005zM42.474 73.78c-.698-3.697-1.65-8.75-2.63-13.98l.184-.034a10586 10586 0 0 0 3.678 19.51l.05.266.01.044.003.016v.006a.18.18 0 0 1-.077.097.18.18 0 0 1-.106-.063l-.002-.006-.001-.008-.01-.051-.052-.267-.219-1.15c-.194-1.023-.48-2.532-.828-4.38m1.291 5.806v-.001a.18.18 0 0 0-.106-.063.18.18 0 0 0-.077.096zM44.553 72.934c-.7-3.71-1.647-8.748-2.612-13.895l.185-.034a13097 13097 0 0 0 3.722 19.768l.011.055v.001l.002.007v.027c-.062.078-.172.039-.181.021l-.005-.02-.011-.056a265 265 0 0 1-.277-1.456zm1.306 5.895-.002-.007c-.008-.017-.119-.057-.182.021v.018zm-.184.037",
  clipRule: "evenodd"
})), _path31 || (_path31 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  fillRule: "evenodd",
  d: "M39.398 81.36c4.582-2.818 9.729-4.263 15.104-4.064.208.007.37.18.362.386a.374.374 0 0 1-.389.358c-5.217-.193-10.217 1.208-14.681 3.953a.38.38 0 0 1-.517-.12.37.37 0 0 1 .12-.513M38.848 78.538c4.587-2.825 9.738-4.273 15.12-4.074.207.007.369.18.361.386a.374.374 0 0 1-.389.358c-5.222-.193-10.227 1.211-14.695 3.962a.38.38 0 0 1-.518-.12.37.37 0 0 1 .12-.513M38.316 75.705c4.587-2.824 9.737-4.272 15.115-4.073.208.007.37.18.362.386a.374.374 0 0 1-.389.358c-5.22-.193-10.223 1.211-14.69 3.962a.38.38 0 0 1-.518-.12.37.37 0 0 1 .12-.513M37.789 72.873c4.587-2.824 9.737-4.272 15.115-4.073.207.007.37.18.362.386a.374.374 0 0 1-.389.358c-5.22-.193-10.223 1.211-14.691 3.962a.38.38 0 0 1-.517-.12.37.37 0 0 1 .12-.513M37.243 70.05c4.591-2.83 9.747-4.282 15.134-4.082.207.007.37.18.362.386a.374.374 0 0 1-.39.358c-5.227-.194-10.236 1.213-14.709 3.97a.38.38 0 0 1-.517-.12.37.37 0 0 1 .12-.513M36.712 67.216c4.591-2.829 9.747-4.281 15.134-4.08.207.007.369.18.361.385a.374.374 0 0 1-.389.358c-5.227-.194-10.236 1.214-14.71 3.97a.38.38 0 0 1-.516-.12.37.37 0 0 1 .12-.513M36.195 64.376c4.588-2.824 9.74-4.273 15.12-4.074.207.008.37.181.362.386a.374.374 0 0 1-.39.359c-5.22-.194-10.226 1.21-14.695 3.961a.38.38 0 0 1-.517-.12.37.37 0 0 1 .12-.513M35.65 61.552c4.59-2.83 9.747-4.281 15.133-4.081.207.008.37.18.362.386a.374.374 0 0 1-.39.358c-5.227-.194-10.236 1.213-14.708 3.97a.38.38 0 0 1-.518-.12.37.37 0 0 1 .12-.513",
  clipRule: "evenodd"
})), _path32 || (_path32 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  d: "M35.851 61.868c4.532-2.793 9.618-4.222 14.922-4.025l1.592 8.497c-5.307-.198-10.39 1.232-14.922 4.025z"
})), _path33 || (_path33 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  fillRule: "evenodd",
  d: "m36.268 62.051 1.446 7.715c4.338-2.565 9.162-3.91 14.197-3.812l-1.452-7.749c-5.032-.127-9.86 1.23-14.191 3.846m-.615-.5c4.591-2.83 9.75-4.28 15.134-4.08a.375.375 0 0 1 .355.304l1.593 8.497a.37.37 0 0 1-.085.31.38.38 0 0 1-.298.13c-5.228-.195-10.237 1.212-14.71 3.97a.378.378 0 0 1-.568-.25l-1.592-8.496a.37.37 0 0 1 .171-.384",
  clipRule: "evenodd"
})), _path34 || (_path34 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#000",
  strokeLinecap: "round",
  strokeWidth: 1.468,
  d: "M58.565 63.879c.876 5.566-4.736 9.076-8.612 7.78M8.738 76.438c1.616 4.56 7.623 6.458 13.652 0"
})), _path35 || (_path35 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#161B18",
  strokeLinecap: "round",
  strokeMiterlimit: 10,
  strokeWidth: 1.472,
  d: "M160.68 68.356c.934 6.676 1.531 14.409 0 20.996M171.536 72.568l-3.781 31.849h-4.47"
})), _path36 || (_path36 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#161B18",
  strokeLinecap: "round",
  strokeLinejoin: "round",
  strokeWidth: 1.472,
  d: "M187.455 104.418h-4.471c.637-10.18 1.817-24.67 1.817-24.67"
})), _path37 || (_path37 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#000",
  strokeLinecap: "round",
  strokeWidth: 1.468,
  d: "M199.766 66.904c2.35 3.645 6.395 13.017 4.381 17.69M161.004 59.99c-3.656 2.734-9.85 8.336-9.904 15.127"
})), _path38 || (_path38 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#000",
  strokeLinecap: "round",
  strokeWidth: 1.468,
  d: "M161.004 59.99c-3.656 2.734-9.85 8.336-9.904 15.127-.045 5.634 4.35 10.804 12.101 6.915"
})), _path39 || (_path39 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#77AD8C",
  d: "M188.416 36.69c5.324 1.935 9.926 5.533 12.45 10.684 5.586 11.402.195 27.178-11.38 32.714-10.499 5.032-24.499 1.152-30.83-8.532s-4.157-23.882 4.792-31.286c6.7-5.538 16.706-6.574 24.968-3.58"
})), _path40 || (_path40 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#5C9271",
  d: "M200.868 47.374a19.8 19.8 0 0 0-4.03-5.505c.638.885 1.2 1.822 1.68 2.8 5.587 11.402.196 27.177-11.38 32.714-9.081 4.35-20.778 2.028-27.868-4.939 6.584 9.03 20.044 12.517 30.218 7.648 11.568-5.54 16.966-21.316 11.38-32.718"
})), _path41 || (_path41 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#161B18",
  strokeLinecap: "round",
  strokeMiterlimit: 10,
  strokeWidth: 1.105,
  d: "M182.034 67.78c-2.79 3.71-7.987 4.925-11.944.505"
})), _path42 || (_path42 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  d: "M175.979 96.185c-.089.946 2.303-20.818 2.977-27.89-6.413-3.959-13.71-5.464-21.09-3.967l-2.976 27.888c7.38-1.496 14.677.009 21.089 3.969"
})), _path43 || (_path43 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#EBEEF0",
  d: "M176.015 96.189c-.112.943 2.142-20.835 2.976-27.89 7.107-2.55 14.561-2.518 21.463.468l-2.976 27.888c-6.902-2.985-14.356-3.017-21.463-.466"
})), _path44 || (_path44 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  fillRule: "evenodd",
  d: "M174.58 85.6c.437-4.028 1.037-9.587 1.66-15.427l.203.022a8025 8025 0 0 1-2.178 20.167l-.165 1.486-.006.048-.001.004-.002.008a.2.2 0 0 1-.107.073.2.2 0 0 1-.093-.094v-.012l.001-.003v-.001l.002-.02h.001l.003-.026.03-.268.135-1.217zm-.683 6.25a.2.2 0 0 1 .106-.07.2.2 0 0 1 .09.089zm.198.037v-.002zM172.305 84.486c.438-4.034 1.035-9.579 1.654-15.376l.203.022a10438 10438 0 0 1-2.172 20.136l-.136 1.235-.031.28-.006.05-.001.005-.001.004-.007.02c-.063.057-.179.014-.194-.027l-.001-.015.001-.006.001-.018h.001l.004-.036.032-.28.135-1.234c.121-1.104.3-2.743.518-4.76m-.688 6.31.2.019-.001-.006c-.015-.04-.13-.083-.194-.028zM170.011 83.561c.437-4.044 1.033-9.574 1.643-15.297l.203.022a10698 10698 0 0 1-2.163 20.089l-.138 1.259-.033.292-.007.057-.001.008-.001.007a.2.2 0 0 1-.109.076.2.2 0 0 1-.092-.097v-.007l.001-.018h.001l.006-.049.032-.291.138-1.258zm-.696 6.391.201.019a.2.2 0 0 0-.091-.097.2.2 0 0 0-.109.077zM167.698 82.823c.438-4.06 1.03-9.573 1.631-15.204l.202.021a14092 14092 0 0 1-2.153 20.038l-.141 1.287-.033.306-.008.063-.001.007v.004l-.002.01c-.008.02-.124.072-.199-.008-.001-.008-.002-.019-.001-.021v-.008l.001-.007v-.001l.007-.061.034-.306.14-1.287c.124-1.136.304-2.803.523-4.833m-.704 6.488.202.018-.002-.018c-.074-.08-.19-.028-.198-.008zM165.365 82.269c.44-4.083 1.03-9.583 1.62-15.111l.202.021a15535 15535 0 0 1-2.146 19.997l-.143 1.319-.035.322-.008.07-.002.015-.004.015c-.092.07-.196-.01-.198-.03v-.01l.001-.006.202.019v-.005c-.002-.02-.106-.1-.198-.03l-.004.014v.002l.001-.008.007-.068.036-.322.143-1.319zM163.009 81.934c.44-4.093 1.027-9.57 1.606-14.994l.202.021a31559 31559 0 0 1-2.135 19.918l-.146 1.348-.037.336-.008.077-.002.016-.001.006a.2.2 0 0 1-.029.055.17.17 0 0 1-.173-.075v-.007l.001-.003.202.019.001-.004c0-.005-.066-.097-.173-.075a.2.2 0 0 0-.03.055v.003l.001-.012.009-.076.037-.337.145-1.347zM160.626 81.796c.441-4.111 1.025-9.57 1.593-14.891l.203.02c-.568 5.322-1.153 10.781-1.593 14.892l-.533 4.968-.148 1.378-.038.35-.009.084-.002.018-.001.006c0 .004-.113.086-.202-.016v-.009000000000000001l.203.02v-.007c-.089-.102-.202-.02-.202-.016l-.001.002.001-.002.001-.017.009-.084.038-.35.148-1.378zM159.809 67.077l.202.02-2.315 21.692h-.01l-.182-.02h-.01z",
  clipRule: "evenodd"
})), _path45 || (_path45 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8BDB9",
  fillRule: "evenodd",
  d: "M173.801 92.217c-5.049-2.588-10.56-3.683-16.171-3.04a.406.406 0 0 1-.45-.354.405.405 0 0 1 .358-.447c5.78-.662 11.454.468 16.637 3.125a.4.4 0 0 1 .174.543.41.41 0 0 1-.548.173M174.149 89.126c-5.054-2.595-10.57-3.692-16.187-3.048a.406.406 0 0 1-.45-.354.405.405 0 0 1 .358-.447c5.787-.663 11.465.47 16.654 3.134a.4.4 0 0 1 .173.543.41.41 0 0 1-.548.172M174.49 86.028c-5.059-2.594-10.575-3.691-16.188-3.048a.405.405 0 0 1-.45-.354.405.405 0 0 1 .358-.447c5.783-.662 11.461.47 16.653 3.134a.4.4 0 0 1 .174.543.407.407 0 0 1-.547.172M174.822 82.93c-5.059-2.595-10.575-3.692-16.188-3.049a.405.405 0 0 1-.45-.354.405.405 0 0 1 .358-.446c5.783-.663 11.461.47 16.653 3.133a.4.4 0 0 1 .174.543.407.407 0 0 1-.547.173M175.157 79.838c-5.059-2.6-10.581-3.7-16.202-3.055a.404.404 0 1 1-.093-.8c5.792-.665 11.476.47 16.669 3.14a.4.4 0 0 1 .174.543.41.41 0 0 1-.548.172M175.485 76.739c-5.059-2.6-10.581-3.7-16.202-3.056a.404.404 0 1 1-.093-.8c5.792-.665 11.476.472 16.67 3.14a.4.4 0 0 1 .173.543.41.41 0 0 1-.548.173",
  clipRule: "evenodd"
})), _path46 || (_path46 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8BDB9",
  d: "M159.902 67.086c5.707-.655 11.31.463 16.436 3.098l-.346 3.09c-5.121-2.628-10.719-3.743-16.42-3.09z"
})), _path47 || (_path47 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8BDB9",
  fillRule: "evenodd",
  d: "m160.27 67.451-.243 2.28c5.417-.524 10.73.523 15.624 2.922l.251-2.237c-4.894-2.461-10.214-3.522-15.632-2.965m-.416-.765c5.792-.665 11.476.47 16.67 3.14l.247.127-.442 3.949-.526-.27c-5.054-2.594-10.571-3.691-16.187-3.047l-.504.057.419-3.919z",
  clipRule: "evenodd"
})), _path48 || (_path48 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#EBEEF0",
  fillRule: "evenodd",
  d: "M179.36 86.1c.423-4.031 1.009-9.591 1.632-15.431l.203.021c-.623 5.84-1.21 11.4-1.632 15.43-.211 2.015-.382 3.648-.495 4.742l-.125 1.218-.027.269-.002.025h.001l-.003.02-.001.004v.004l-.002.008a.2.2 0 0 1-.11.074.2.2 0 0 1-.09-.094v-.012l.004-.049.027-.27.125-1.217zm-.449 6.274a.2.2 0 0 0-.088-.09.2.2 0 0 0-.107.067zm-.201-.007v.001zM181.821 85.478c.424-4.035 1.01-9.582 1.628-15.378l.203.02a9453 9453 0 0 0-2.255 21.376l-.029.28-.003.036h.001l-.003.018-.001.006-.004.015c-.023.037-.145.055-.195-.013-.002-.008-.002-.02-.002-.022v-.008l.005-.052.028-.28.128-1.236zm-.457 6.334-.002-.015c-.051-.068-.172-.05-.196-.013l-.001.005zM184.261 85.047c.426-4.046 1.011-9.577 1.622-15.3l.202.021c-.61 5.723-1.195 11.254-1.621 15.3-.213 2.022-.387 3.674-.503 4.793l-.131 1.26-.03.291-.005.05h.001l-.002.017-.002.006a.2.2 0 0 1-.11.077.2.2 0 0 1-.091-.097l.001-.007v-.008l.005-.057.03-.293.131-1.26zm-.466 6.414v-.002a.2.2 0 0 0-.09-.097.2.2 0 0 0-.11.076zM186.679 84.801c.429-4.06 1.013-9.574 1.614-15.205l.202.02a14313 14313 0 0 0-2.288 21.634l-.007.061v.001h.001l-.001.008v.002l-.001.002v.003l-.006.021c-.09.062-.193-.012-.196-.033V91.3l.001-.007.006-.063.031-.306.135-1.288zm-.479 6.511v-.008c-.003-.02-.106-.095-.195-.033l-.006.018zm-.202-.018",
  clipRule: "evenodd"
})), _path49 || (_path49 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  fillRule: "evenodd",
  d: "M178.707 91.973c5.63-1.53 11.417-1.465 16.931.375.212.07.327.3.255.51a.41.41 0 0 1-.515.254c-5.351-1.786-10.973-1.852-16.457-.361a.407.407 0 0 1-.499-.282.403.403 0 0 1 .285-.496M179.019 88.88c5.636-1.536 11.429-1.473 16.948.368a.403.403 0 1 1-.259.764c-5.357-1.787-10.984-1.851-16.475-.356a.403.403 0 1 1-.214-.777M179.351 85.78c5.635-1.534 11.427-1.471 16.943.369a.403.403 0 1 1-.259.764c-5.354-1.786-10.98-1.85-16.47-.356a.403.403 0 1 1-.214-.777M179.683 82.682c5.635-1.535 11.427-1.472 16.943.368a.403.403 0 1 1-.259.764c-5.354-1.786-10.98-1.85-16.469-.355a.403.403 0 1 1-.215-.777M179.994 79.588c5.643-1.54 11.442-1.479 16.966.365.213.071.327.3.255.51a.407.407 0 0 1-.515.254c-5.361-1.79-10.994-1.853-16.49-.352a.403.403 0 1 1-.216-.777M180.323 76.489c5.642-1.54 11.441-1.479 16.965.365.213.072.327.3.255.51a.407.407 0 0 1-.515.254c-5.361-1.79-10.994-1.852-16.49-.352a.403.403 0 1 1-.215-.777M180.671 73.385c5.637-1.534 11.43-1.471 16.949.37.212.071.327.3.255.51a.407.407 0 0 1-.515.254c-5.356-1.787-10.984-1.852-16.474-.357a.402.402 0 1 1-.215-.777M180.987 70.291c5.642-1.54 11.441-1.478 16.965.366.213.071.327.3.255.51a.406.406 0 0 1-.514.254c-5.362-1.79-10.995-1.853-16.491-.353a.403.403 0 1 1-.215-.777",
  clipRule: "evenodd"
})), _path50 || (_path50 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  d: "M181.096 70.68c5.569-1.52 11.288-1.457 16.728.358l-.992 9.297c-5.443-1.817-11.159-1.88-16.728-.36z"
})), _path51 || (_path51 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  fillRule: "evenodd",
  d: "m181.469 70.997-.901 8.44c5.297-1.342 10.719-1.271 15.911.36l.905-8.477c-5.179-1.662-10.609-1.722-15.915-.323m-.482-.706c5.642-1.54 11.444-1.477 16.965.366.18.06.294.236.274.424l-.992 9.296a.404.404 0 0 1-.534.34c-5.361-1.79-10.994-1.853-16.49-.352a.41.41 0 0 1-.371-.082.4.4 0 0 1-.141-.349l.992-9.296a.4.4 0 0 1 .297-.347",
  clipRule: "evenodd"
})), _path52 || (_path52 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#000",
  strokeLinecap: "round",
  strokeWidth: 1.468,
  d: "M204.146 84.595c-1.671 3.879-7.751 2.74-10.354-.297M151.096 75.116c-.045 5.635 4.349 10.805 12.1 6.915"
})), _path53 || (_path53 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#161B18",
  strokeLinecap: "round",
  strokeLinejoin: "round",
  strokeWidth: 1.472,
  d: "M91.429 81.618c-.729 8.2-.457 15.965 1.975 22.796h4.47M80.227 81.238c-.76 8.178-.245 15.966 2.153 23.178h-4.478"
})), _path54 || (_path54 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#000",
  strokeLinecap: "round",
  strokeWidth: 1.468,
  d: "M118.418 79.006c7.32 3.89 10.2 8.445 9.473 12.335M60.719 71.227c-7.51 3.313-11.627 6.373-11.627 13.398"
})), _path55 || (_path55 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#77AD8C",
  d: "m57.84 49.763-3.38 33.985 68.342 6.303 1.443-32.81z"
})), _path56 || (_path56 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#5C9271",
  d: "m57.476 82.268 2.638-32.25-2.273-.255-3.38 33.985 68.341 6.303.127-2.876z"
})), _path57 || (_path57 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#161B18",
  strokeLinecap: "round",
  strokeMiterlimit: 10,
  strokeWidth: 1.105,
  d: "M80.625 72.749c3.832 4.721 11.357 6.736 17.468 1.896"
})), _path58 || (_path58 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  d: "M86.74 98.236c-.1.945 2.55-20.79 3.308-27.852-6.365-4.035-13.644-5.624-21.041-4.213L65.7 94.023c7.397-1.41 14.676.179 21.04 4.213"
})), _path59 || (_path59 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#EBEEF0",
  d: "M86.776 98.24c-.123.942 2.39-20.808 3.308-27.852 7.137-2.468 14.59-2.35 21.455.717l-3.307 27.851c-6.865-3.065-14.319-3.184-21.456-.716"
})), _path60 || (_path60 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  fillRule: "evenodd",
  d: "M85.467 87.637c.485-4.024 1.151-9.575 1.844-15.407l.202.023a8547 8547 0 0 1-2.418 20.141l-.192 1.544a.2.2 0 0 1-.108.072.2.2 0 0 1-.091-.095v-.017l.002-.02h.001l.004-.025.033-.268.15-1.215zm-.757 6.242a.2.2 0 0 1 .106-.069c.05.022.08.071.089.09zm.197.038v-.001zM83.205 86.496c.485-4.028 1.149-9.566 1.836-15.355l.202.023a9661 9661 0 0 1-2.561 21.343l-.042.335-.001.004-.007.02c-.065.056-.18.012-.194-.03v-.02q0-.007.002-.019l.005-.036.035-.278.15-1.233zm-.763 6.302.199.02v-.005c-.015-.041-.13-.085-.194-.03zM80.927 85.544c.485-4.04 1.146-9.561 1.825-15.277l.202.023A11321 11321 0 0 1 80.4 91.61l-.043.35-.003.014a.2.2 0 0 1-.11.076.2.2 0 0 1-.09-.1l.001-.023.007-.05.036-.29.153-1.257zm-.772 6.383.201.02a.2.2 0 0 0-.09-.097.2.2 0 0 0-.11.075zM78.619 84.779c.486-4.055 1.144-9.56 1.811-15.184l.203.024a14138 14138 0 0 1-2.593 21.664l-.001.007-.003.014c-.008.02-.124.07-.198-.01l-.002-.025v-.003l.001-.008.001-.001.008-.06.037-.306.156-1.285zm-.781 6.48.202.02-.002-.019c-.074-.08-.19-.03-.198-.01zM76.295 84.198c.488-4.077 1.144-9.57 1.8-15.091l.201.023a17205 17205 0 0 1-2.59 21.68l-.002.015-.004.014c-.093.07-.196-.012-.198-.032v-.016l.203.022v-.005c-.001-.02-.104-.101-.198-.033l-.004.015v.001l.001-.007.009-.069q.011-.1.039-.32l.158-1.318c.14-1.157.341-2.84.585-4.88M73.94 83.836c.489-4.088 1.14-9.558 1.784-14.975l.202.024a21887 21887 0 0 1-2.584 21.65l-.002.017v.005a.2.2 0 0 1-.03.055.17.17 0 0 1-.172-.077v-.01l.203.021v-.003a.17.17 0 0 0-.172-.077.2.2 0 0 0-.03.054v.004l.001-.013.01-.076.04-.336.162-1.346zM71.563 83.67l1.77-14.872.201.024a33930 33930 0 0 1-2.568 21.56l-.01.083-.002.018v.006c-.001.004-.115.084-.203-.019v-.009000000000000001l.203.022v-.006c-.088-.103-.201-.023-.202-.019v.002-.001l.002-.018.01-.083.042-.35.165-1.376zM70.918 68.942l.202.023-2.572 21.664-.01-.001-.182-.022h-.01z",
  clipRule: "evenodd"
})), _path61 || (_path61 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8BDB9",
  fillRule: "evenodd",
  d: "M84.613 94.243c-5.017-2.647-10.516-3.805-16.133-3.227a.405.405 0 0 1-.446-.36.404.404 0 0 1 .362-.442c5.789-.596 11.448.6 16.6 3.318a.4.4 0 0 1 .167.545.41.41 0 0 1-.55.166M84.997 91.157c-5.023-2.653-10.527-3.815-16.15-3.236a.405.405 0 0 1-.446-.36.404.404 0 0 1 .363-.442c5.794-.596 11.459.603 16.615 3.327a.4.4 0 0 1 .167.545.41.41 0 0 1-.55.166M85.372 88.063c-5.028-2.653-10.53-3.814-16.15-3.236a.405.405 0 0 1-.446-.36.404.404 0 0 1 .363-.442c5.791-.595 11.455.604 16.615 3.327a.4.4 0 0 1 .167.545.41.41 0 0 1-.55.166M85.739 84.969c-5.027-2.653-10.53-3.815-16.15-3.237a.405.405 0 0 1-.446-.359.404.404 0 0 1 .363-.442c5.791-.596 11.455.603 16.615 3.326a.4.4 0 0 1 .168.545.41.41 0 0 1-.55.167M86.113 81.88c-5.027-2.658-10.536-3.822-16.165-3.243a.405.405 0 0 1-.445-.359.404.404 0 0 1 .362-.442c5.8-.598 11.47.604 16.631 3.333a.4.4 0 0 1 .167.546.41.41 0 0 1-.55.165M86.477 78.786c-5.028-2.658-10.537-3.823-16.165-3.243a.405.405 0 0 1-.446-.36.404.404 0 0 1 .362-.442c5.8-.597 11.47.606 16.632 3.334a.4.4 0 0 1 .167.545.41.41 0 0 1-.55.166",
  clipRule: "evenodd"
})), _path62 || (_path62 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8BDB9",
  d: "M71.012 68.953c5.714-.588 11.304.594 16.398 3.288l-.383 3.087c-5.09-2.688-10.674-3.868-16.383-3.28z"
})), _path63 || (_path63 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#B8BDB9",
  fillRule: "evenodd",
  d: "m71.377 69.322-.27 2.277c5.424-.461 10.724.647 15.589 3.103l.277-2.234c-4.864-2.518-10.171-3.64-15.596-3.146m-.406-.77c5.8-.597 11.47.604 16.63 3.334l.247.13-.49 3.943-.522-.276c-5.023-2.652-10.526-3.814-16.15-3.235l-.504.052.465-3.915z",
  clipRule: "evenodd"
})), _path64 || (_path64 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#EBEEF0",
  fillRule: "evenodd",
  d: "M90.243 88.191c.47-4.025 1.123-9.578 1.816-15.41l.202.023a8576 8576 0 0 0-2.367 20.146l-.172 1.51h.001l-.003.02v.006l-.001.002-.002.008a.2.2 0 0 1-.111.073.2.2 0 0 1-.089-.096v-.012l.005-.047.03-.27.14-1.216zm-.523 6.269a.2.2 0 0 0-.088-.091.2.2 0 0 0-.107.066zM92.712 87.598c.472-4.03 1.124-9.57 1.811-15.359l.203.024a9910 9910 0 0 0-2.51 21.348l-.031.279-.004.036q0 .012-.002.018v.006l-.005.015c-.024.036-.146.053-.195-.016l-.002-.021v-.009000000000000001l.006-.051.031-.28.143-1.234zm-.532 6.328q0-.007-.002-.015c-.05-.069-.171-.052-.195-.016l-.002.006zM95.154 87.195c.474-4.041 1.124-9.564 1.803-15.28l.202.023a11129 11129 0 0 0-2.509 21.325l-.038.34-.002.018-.002.007a.2.2 0 0 1-.111.075.2.2 0 0 1-.09-.098v-.007l.001-.008.007-.057.033-.293a5635.92 5635.92 0 0 1 .706-6.046m-.543 6.409v-.002c0-.007-.03-.07-.09-.099a.2.2 0 0 0-.11.075zM97.577 86.978c.477-4.056 1.126-9.562 1.794-15.186l.202.023a13877 13877 0 0 0-2.546 21.606l-.007.06v.013l-.001.004-.007.02c-.09.062-.192-.014-.195-.035v-.014l.001-.008.007-.062.035-.307.15-1.285zm-.557 6.505v-.008c-.003-.021-.104-.097-.195-.036l-.006.018zm-.202-.02",
  clipRule: "evenodd"
})), _path65 || (_path65 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  fillRule: "evenodd",
  d: "M89.522 94.057c5.648-1.465 11.434-1.333 16.925.57a.4.4 0 0 1 .249.514.407.407 0 0 1-.517.247c-5.33-1.848-10.95-1.978-16.452-.552a.403.403 0 1 1-.205-.78M89.865 90.967c5.655-1.47 11.446-1.34 16.943.565a.4.4 0 0 1 .249.514.407.407 0 0 1-.517.247c-5.336-1.85-10.961-1.979-16.47-.547a.403.403 0 1 1-.206-.78M90.236 87.872c5.654-1.47 11.444-1.34 16.938.565a.4.4 0 0 1 .249.513.407.407 0 0 1-.517.248c-5.333-1.849-10.957-1.978-16.464-.547a.403.403 0 1 1-.205-.78M90.603 84.776c5.654-1.469 11.444-1.339 16.939.566a.402.402 0 1 1-.269.76c-5.332-1.848-10.957-1.977-16.464-.546a.403.403 0 1 1-.206-.78M90.954 81.687c5.66-1.474 11.458-1.346 16.96.563a.4.4 0 0 1 .249.513.41.41 0 0 1-.518.247c-5.339-1.852-10.971-1.98-16.485-.544a.403.403 0 1 1-.206-.78M91.317 78.592c5.66-1.473 11.458-1.346 16.961.563a.402.402 0 1 1-.269.76c-5.34-1.852-10.972-1.979-16.486-.544a.403.403 0 1 1-.206-.78M91.705 75.492c5.654-1.469 11.447-1.339 16.943.567a.4.4 0 0 1 .249.513.407.407 0 0 1-.518.247c-5.334-1.849-10.96-1.978-16.469-.548a.403.403 0 1 1-.205-.78M92.056 72.402c5.66-1.474 11.458-1.345 16.96.563a.4.4 0 0 1 .249.513.407.407 0 0 1-.518.248c-5.34-1.852-10.972-1.98-16.485-.544a.403.403 0 1 1-.206-.78",
  clipRule: "evenodd"
})), _path66 || (_path66 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  d: "M92.158 72.792c5.587-1.455 11.305-1.326 16.723.553l-1.103 9.284c-5.421-1.88-11.136-2.008-16.723-.553z"
})), _path67 || (_path67 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#CBD0D3",
  fillRule: "evenodd",
  d: "m92.53 73.113-1.002 8.43c5.313-1.28 10.734-1.147 15.906.545l1.005-8.467c-5.159-1.721-10.587-1.844-15.91-.508m-.475-.71c5.66-1.475 11.461-1.345 16.961.562.179.062.291.24.269.427l-1.103 9.285a.4.4 0 0 1-.188.294.41.41 0 0 1-.35.039c-5.339-1.852-10.971-1.98-16.485-.544a.41.41 0 0 1-.37-.086.4.4 0 0 1-.136-.35l1.102-9.285c.02-.164.139-.3.3-.343",
  clipRule: "evenodd"
})), _path68 || (_path68 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "#000",
  strokeLinecap: "round",
  strokeWidth: 1.468,
  d: "M127.892 91.34c-1.329 7.115-12.918 8.843-24.256 0M49.088 84.625c0 6.05 9.182 11.081 24.545 3.457"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgNoAudienceBannerGraphic);

/***/ }),

/***/ "./svg/icons/arrow-inverse.svg":
/*!*************************************!*\
  !*** ./svg/icons/arrow-inverse.svg ***!
  \*************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _g;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgArrowInverse = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 13 13"
}, props), _g || (_g = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
  fill: "none",
  fillRule: "evenodd"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("circle", {
  cx: 6.5,
  cy: 6.5,
  r: 6.5,
  fill: "#FFF"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "currentColor",
  d: "M3.461 6.96h5.15L6.36 9.21a.464.464 0 0 0 .325.79.46.46 0 0 0 .325-.135l3.037-3.038a.46.46 0 0 0 0-.65L7.015 3.135a.46.46 0 0 0-.65.65L8.61 6.039H3.461a.46.46 0 0 0-.461.46c0 .254.207.462.461.462z"
}), ".")));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgArrowInverse);

/***/ }),

/***/ "./svg/icons/arrow.svg":
/*!*****************************!*\
  !*** ./svg/icons/arrow.svg ***!
  \*****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _g;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgArrow = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 13 13"
}, props), _g || (_g = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("g", {
  fill: "none",
  fillRule: "evenodd"
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("circle", {
  cx: 6.5,
  cy: 6.5,
  r: 6.5,
  fill: "currentColor"
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "#FFF",
  d: "M3.461 6.96h5.15L6.36 9.21a.464.464 0 0 0 .325.79.46.46 0 0 0 .325-.135l3.037-3.038a.46.46 0 0 0 0-.65L7.015 3.135a.46.46 0 0 0-.65.65L8.61 6.039H3.461a.46.46 0 0 0-.461.46c0 .254.207.462.461.462z"
}), ".")));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgArrow);

/***/ }),

/***/ "./svg/icons/audience-metric-icon-cities.svg":
/*!***************************************************!*\
  !*** ./svg/icons/audience-metric-icon-cities.svg ***!
  \***************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgAudienceMetricIconCities = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "0 0 20 20"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "currentColor",
  d: "M10 18.333a.78.78 0 0 1-.5-.166 1 1 0 0 1-.312-.438 11.6 11.6 0 0 0-1-2.187q-.585-1.022-1.646-2.396-1.062-1.376-1.73-2.625-.645-1.25-.645-3.021 0-2.437 1.687-4.125Q7.564 1.666 10 1.667q2.438 0 4.125 1.708 1.71 1.688 1.709 4.125 0 1.896-.73 3.166-.708 1.25-1.645 2.48-1.125 1.5-1.709 2.5a11.8 11.8 0 0 0-.937 2.083.94.94 0 0 1-.334.458.8.8 0 0 1-.479.146m0-2.979q.354-.708.792-1.396.459-.688 1.333-1.833a20 20 0 0 0 1.459-2.146q.583-1 .583-2.48 0-1.728-1.23-2.937Q11.73 3.332 10 3.333t-2.958 1.23Q5.833 5.77 5.834 7.5q0 1.479.562 2.479.584.98 1.48 2.146.874 1.146 1.312 1.833.458.688.812 1.396m0-5.77q.876 0 1.48-.605.603-.604.604-1.48 0-.874-.604-1.478A2.01 2.01 0 0 0 10 5.417q-.875-.001-1.479.604A2.01 2.01 0 0 0 7.917 7.5q0 .875.604 1.479t1.48.604"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgAudienceMetricIconCities);

/***/ }),

/***/ "./svg/icons/audience-metric-icon-pages-per-visit.svg":
/*!************************************************************!*\
  !*** ./svg/icons/audience-metric-icon-pages-per-visit.svg ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgAudienceMetricIconPagesPerVisit = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "0 0 20 20"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "currentColor",
  d: "M13.125 16.667H3.334q-.689 0-1.188-.48-.48-.5-.479-1.187V5q0-.687.48-1.166.498-.5 1.187-.5h13.333q.687 0 1.167.5.5.479.5 1.166v10q0 .688-.5 1.188-.48.48-1.167.479H15.5l-3.916-3.917q-.437.292-.959.438-.5.146-1.041.146-1.562 0-2.667-1.084-1.083-1.104-1.083-2.666 0-1.563 1.083-2.646a3.63 3.63 0 0 1 2.667-1.104q1.562 0 2.646 1.104 1.104 1.083 1.104 2.646 0 .563-.146 1.062a3.4 3.4 0 0 1-.438.938L16.167 15h.5V5H3.334v10h8.125zm-3.541-5q.874 0 1.479-.604.604-.604.604-1.48 0-.875-.604-1.479a2.01 2.01 0 0 0-1.48-.604q-.874 0-1.479.604a2.01 2.01 0 0 0-.604 1.48q0 .875.604 1.479.604.603 1.48.604M3.334 15V5z"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgAudienceMetricIconPagesPerVisit);

/***/ }),

/***/ "./svg/icons/audience-metric-icon-pageviews.svg":
/*!******************************************************!*\
  !*** ./svg/icons/audience-metric-icon-pageviews.svg ***!
  \******************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgAudienceMetricIconPageviews = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "0 0 20 20"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "currentColor",
  d: "M4.167 17.5q-.688 0-1.188-.48-.48-.498-.479-1.187V4.167q0-.689.48-1.167.499-.5 1.187-.5h11.666q.688 0 1.167.5.5.48.5 1.167v11.666q0 .688-.5 1.188-.48.48-1.167.479zm0-1.667h11.666v-10H4.167zM10 14.167q-1.709 0-3.062-.917A5.4 5.4 0 0 1 5 10.833a5.27 5.27 0 0 1 1.938-2.395Q8.29 7.499 10 7.5q1.709 0 3.042.938A5.23 5.23 0 0 1 15 10.833a5.35 5.35 0 0 1-1.958 2.417q-1.334.917-3.042.917m0-1.25q1.167 0 2.125-.542a4 4 0 0 0 1.5-1.542 3.85 3.85 0 0 0-1.5-1.52A4.1 4.1 0 0 0 10 8.75a4.1 4.1 0 0 0-2.125.563 3.85 3.85 0 0 0-1.5 1.52 4 4 0 0 0 1.5 1.542 4.24 4.24 0 0 0 2.125.542m0-.834a1.26 1.26 0 0 1-.896-.354 1.26 1.26 0 0 1-.354-.896q0-.52.354-.875.375-.375.896-.375.52 0 .875.375.375.354.375.875t-.375.896a1.2 1.2 0 0 1-.875.354"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgAudienceMetricIconPageviews);

/***/ }),

/***/ "./svg/icons/audience-metric-icon-top-content.svg":
/*!********************************************************!*\
  !*** ./svg/icons/audience-metric-icon-top-content.svg ***!
  \********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgAudienceMetricIconTopContent = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "0 0 20 20"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "currentColor",
  d: "M3.334 16.667q-.689 0-1.188-.48-.48-.5-.479-1.187V5q0-.687.48-1.166.498-.5 1.187-.5h13.333q.687 0 1.167.5.5.479.5 1.166v10q0 .688-.5 1.188-.48.48-1.167.479zm0-1.667h8.75v-2.916h-8.75zm10.416 0h2.917V7.5H13.75zM3.334 10.417h8.75V7.5h-8.75z"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgAudienceMetricIconTopContent);

/***/ }),

/***/ "./svg/icons/audience-metric-icon-visitors.svg":
/*!*****************************************************!*\
  !*** ./svg/icons/audience-metric-icon-visitors.svg ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgAudienceMetricIconVisitors = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "0 0 20 20"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "currentColor",
  d: "M.833 16.667v-2.334q0-.708.354-1.291a2.5 2.5 0 0 1 .98-.917q1.29-.646 2.624-.958a11 11 0 0 1 2.709-.333q1.375 0 2.708.333 1.333.313 2.625.958.604.313.958.917.375.584.375 1.292v2.333zm15 0v-2.5q0-.917-.52-1.75-.5-.855-1.438-1.458 1.062.125 2 .437a10 10 0 0 1 1.75.73q.75.416 1.145.937.396.5.396 1.104v2.5zM7.5 10a3.2 3.2 0 0 1-2.354-.979 3.2 3.2 0 0 1-.98-2.354q0-1.376.98-2.354a3.2 3.2 0 0 1 2.354-.98 3.2 3.2 0 0 1 2.354.98 3.2 3.2 0 0 1 .979 2.354 3.2 3.2 0 0 1-.98 2.354 3.2 3.2 0 0 1-2.353.98m8.333-3.333a3.2 3.2 0 0 1-.98 2.354 3.2 3.2 0 0 1-2.353.98q-.23 0-.584-.042a7 7 0 0 1-.583-.125q.563-.667.854-1.48a4.7 4.7 0 0 0 .313-1.687q0-.875-.313-1.688a4.8 4.8 0 0 0-.854-1.479q.292-.104.583-.125a4 4 0 0 1 .584-.042 3.2 3.2 0 0 1 2.354.98 3.2 3.2 0 0 1 .979 2.354M2.5 15h10v-.666a.74.74 0 0 0-.125-.417.74.74 0 0 0-.292-.292 10.5 10.5 0 0 0-2.27-.833 9.34 9.34 0 0 0-4.626 0q-1.146.27-2.27.833a.9.9 0 0 0-.313.292.84.84 0 0 0-.104.417zm5-6.666q.687 0 1.166-.48.5-.5.5-1.187t-.5-1.167Q8.186 5 7.5 5q-.688 0-1.188.5-.48.48-.479 1.167 0 .687.48 1.187.499.48 1.187.48"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgAudienceMetricIconVisitors);

/***/ }),

/***/ "./svg/icons/audience-metric-icon-visits-per-visitor.svg":
/*!***************************************************************!*\
  !*** ./svg/icons/audience-metric-icon-visits-per-visitor.svg ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgAudienceMetricIconVisitsPerVisitor = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "0 0 20 20"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "currentColor",
  d: "M10 17.5a7.4 7.4 0 0 1-2.937-.583 8 8 0 0 1-2.375-1.605 8 8 0 0 1-1.605-2.374A7.4 7.4 0 0 1 2.5 10q0-1.563.583-2.917a7.7 7.7 0 0 1 1.604-2.375 7.6 7.6 0 0 1 2.375-1.604A7.2 7.2 0 0 1 10 2.5q1.708 0 3.23.73a7.25 7.25 0 0 1 2.603 2.062V3.333H17.5v5h-5V6.667h2.292a6.2 6.2 0 0 0-2.104-1.834A5.6 5.6 0 0 0 10 4.167q-2.437 0-4.146 1.708Q4.167 7.563 4.167 10t1.687 4.146q1.71 1.687 4.146 1.687 2.188 0 3.813-1.416 1.646-1.418 1.937-3.584h1.708q-.312 2.854-2.458 4.771-2.125 1.896-5 1.896m2.333-4-3.166-3.167v-4.5h1.666v3.834l2.667 2.666z"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgAudienceMetricIconVisitsPerVisitor);

/***/ }),

/***/ "./svg/icons/back.svg":
/*!****************************!*\
  !*** ./svg/icons/back.svg ***!
  \****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgBack = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "currentColor",
  viewBox: "0 0 24 24"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  d: "m12 20-8-8 8-8 1.425 1.4-5.6 5.6H20v2H7.825l5.6 5.6z"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgBack);

/***/ }),

/***/ "./svg/icons/check-2.svg":
/*!*******************************!*\
  !*** ./svg/icons/check-2.svg ***!
  \*******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgCheck2 = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "0 0 12 9"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "currentColor",
  strokeLinecap: "square",
  strokeWidth: 1.6,
  d: "m2 5.309 1.474 2.14c.69 1.001 1.946 1.001 2.636 0L10 1.8"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgCheck2);

/***/ }),

/***/ "./svg/icons/check-fill.svg":
/*!**********************************!*\
  !*** ./svg/icons/check-fill.svg ***!
  \**********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgCheckFill = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "0 0 24 24"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "currentColor",
  fillRule: "evenodd",
  d: "M12 1C5.925 1 1 5.925 1 12s4.925 11 11 11 11-4.925 11-11S18.075 1 12 1m4.806 8.592.592-.806-1.612-1.184-.592.806-3.89 5.296c-.166.226-.36.296-.512.296s-.346-.07-.512-.296l-1.474-2.007-.592-.806-1.612 1.184.592.806 1.474 2.007C9.191 15.6 9.971 16 10.792 16s1.6-.4 2.124-1.112z",
  clipRule: "evenodd"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgCheckFill);

/***/ }),

/***/ "./svg/icons/close.svg":
/*!*****************************!*\
  !*** ./svg/icons/close.svg ***!
  \*****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgClose = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "0 0 14 14"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "currentColor",
  d: "M14 1.41 12.59 0 7 5.59 1.41 0 0 1.41 5.59 7 0 12.59 1.41 14 7 8.41 12.59 14 14 12.59 8.41 7z"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgClose);

/***/ }),

/***/ "./svg/icons/external.svg":
/*!********************************!*\
  !*** ./svg/icons/external.svg ***!
  \********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgExternal = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "currentColor",
  viewBox: "0 0 24 24"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  d: "M5 21a2 2 0 0 1-1.425-.575A2 2 0 0 1 3 19V5q0-.825.575-1.4Q4.175 3 5 3h7v2H5v14h14v-7h2v7q0 .825-.6 1.425Q19.825 21 19 21zm4.7-5.3-1.4-1.4L17.6 5H14V3h7v7h-2V6.4z"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgExternal);

/***/ }),

/***/ "./svg/icons/info-circle.svg":
/*!***********************************!*\
  !*** ./svg/icons/info-circle.svg ***!
  \***********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgInfoCircle = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "0 0 23 22"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "currentColor",
  fillRule: "evenodd",
  d: "M11.5 22q-2.283 0-4.29-.852a11.3 11.3 0 0 1-3.492-2.366 11.3 11.3 0 0 1-2.365-3.492A10.9 10.9 0 0 1 .5 11q0-2.283.853-4.29a11.3 11.3 0 0 1 2.364-3.492A10.9 10.9 0 0 1 7.21.88 10.6 10.6 0 0 1 11.5 0q2.283 0 4.29.88a10.9 10.9 0 0 1 3.492 2.337q1.486 1.486 2.338 3.493.88 2.007.88 4.29t-.88 4.29a10.9 10.9 0 0 1-2.338 3.492q-1.485 1.485-3.492 2.366A10.9 10.9 0 0 1 11.5 22m0-14.3q.468 0 .77-.303.33-.33.33-.797a1 1 0 0 0-.33-.77 1 1 0 0 0-.77-.33q-.467 0-.797.33a1.04 1.04 0 0 0-.303.77q0 .468.303.798.33.302.797.302m-1.1 8.8V9.9h2.2v6.6z",
  clipRule: "evenodd"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgInfoCircle);

/***/ }),

/***/ "./svg/icons/info-green.svg":
/*!**********************************!*\
  !*** ./svg/icons/info-green.svg ***!
  \**********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgInfoGreen = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "0 0 16 16"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "currentColor",
  d: "M7.334 11.333h1.333v-4H7.334zM8.001 6a.658.658 0 0 0 .667-.667.6.6 0 0 0-.2-.467.6.6 0 0 0-.467-.2.66.66 0 0 0-.667.667q0 .284.183.483A.7.7 0 0 0 8.001 6m0 8.666a6.6 6.6 0 0 1-2.6-.516 6.9 6.9 0 0 1-2.117-1.434A6.9 6.9 0 0 1 1.851 10.6 6.6 6.6 0 0 1 1.334 8q0-1.385.517-2.6a6.9 6.9 0 0 1 1.433-2.117q.9-.9 2.117-1.417A6.4 6.4 0 0 1 8 1.333q1.383 0 2.6.533a6.6 6.6 0 0 1 2.116 1.417q.9.9 1.417 2.117.533 1.215.533 2.6 0 1.383-.533 2.6a6.6 6.6 0 0 1-1.417 2.116 6.9 6.9 0 0 1-2.116 1.434 6.6 6.6 0 0 1-2.6.516m0-1.333q2.233 0 3.783-1.55T13.334 8t-1.55-3.784-3.783-1.55-3.784 1.55T2.667 8t1.55 3.783 3.784 1.55"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgInfoGreen);

/***/ }),

/***/ "./svg/icons/lightbulb.svg":
/*!*********************************!*\
  !*** ./svg/icons/lightbulb.svg ***!
  \*********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgLightbulb = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "currentColor",
  d: "M10 18.333q-.687 0-1.188-.479a1.66 1.66 0 0 1-.479-1.188h3.334q0 .689-.5 1.188-.48.48-1.167.48Zm-3.333-2.5v-1.667h6.666v1.667zm.208-2.5a6.5 6.5 0 0 1-2.292-2.292Q3.75 9.604 3.75 7.916q0-2.604 1.813-4.416Q7.393 1.667 10 1.667q2.604 0 4.417 1.833 1.833 1.812 1.833 4.417a6 6 0 0 1-.854 3.124 6.3 6.3 0 0 1-2.271 2.292zm.5-1.667h5.25a4.5 4.5 0 0 0 1.438-1.645q.52-.98.52-2.105 0-1.915-1.333-3.25Q11.917 3.334 10 3.333c-1.917-.001-2.361.445-3.25 1.333q-1.333 1.335-1.333 3.25 0 1.125.5 2.105a4.7 4.7 0 0 0 1.458 1.645"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgLightbulb);

/***/ }),

/***/ "./svg/icons/pencil-alt.svg":
/*!**********************************!*\
  !*** ./svg/icons/pencil-alt.svg ***!
  \**********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path, _path2;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgPencilAlt = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "currentColor",
  viewBox: "0 0 22 22"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fillRule: "evenodd",
  d: "m12.149 7.96-5.166 5.166a.34.34 0 0 0-.094.176l-.35 1.755a.344.344 0 0 0 .404.404l1.755-.35a.34.34 0 0 0 .175-.095l5.166-5.165zm2.301-1.814a1.03 1.03 0 0 0-1.458 0L6.497 12.64a1.03 1.03 0 0 0-.282.527l-.35 1.755a1.03 1.03 0 0 0 1.213 1.213l1.754-.35c.2-.04.383-.139.527-.283l6.495-6.494a1.03 1.03 0 0 0 0-1.459z",
  clipRule: "evenodd"
})), _path2 || (_path2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  d: "m12.149 7.96.117-.116a.165.165 0 0 0-.234 0zm-5.166 5.166-.116-.116zm-.094.176.162.033zm-.35 1.755.161.032zm.404.404.032.162zm1.755-.35.032.161zm.175-.095.117.117zm5.166-5.165.116.116a.165.165 0 0 0 0-.233zm-1.047-3.705.116.116zm1.458 0-.116.116zM6.497 12.64l.117.117zm-.282.527-.162-.032zm-.35 1.755.161.032zm1.213 1.213-.033-.162zm1.754-.35.033.161zm.527-.283.117.117zm6.495-6.494-.117-.117zm0-1.459.117-.116zm-3.822.295L6.867 13.01l.233.233 5.166-5.165zM6.867 13.01a.5.5 0 0 0-.14.26l.324.065a.2.2 0 0 1 .05-.092zm-.14.26-.35 1.754.323.065.351-1.755zm-.35 1.754a.51.51 0 0 0 .598.599l-.064-.324a.18.18 0 0 1-.21-.21zm.598.599 1.755-.35-.065-.325-1.754.351zm1.755-.35a.5.5 0 0 0 .26-.14l-.233-.233a.2.2 0 0 1-.092.048zm.26-.14 5.165-5.166-.233-.233L8.757 14.9zm3.042-7.055 1.89 1.89.233-.234-1.89-1.89zm1.076-1.816a.866.866 0 0 1 1.226 0l.233-.233a1.196 1.196 0 0 0-1.692 0zm-6.494 6.495 6.494-6.495-.233-.233-6.494 6.495zm-.237.443a.87.87 0 0 1 .237-.443l-.233-.233c-.167.167-.281.38-.328.61zm-.35 1.754.35-1.754-.324-.065-.35 1.755zm1.018 1.02a.866.866 0 0 1-1.019-1.02l-.323-.065a1.196 1.196 0 0 0 1.407 1.408zm1.755-.351-1.755.35.065.324 1.755-.35zm.443-.237a.87.87 0 0 1-.443.237l.065.323c.231-.046.444-.16.611-.327zm6.494-6.495-6.494 6.495.233.233 6.495-6.494zm0-1.225a.866.866 0 0 1 0 1.225l.234.234a1.196 1.196 0 0 0 0-1.692zm-1.403-1.404 1.403 1.404.234-.233-1.404-1.404z"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgPencilAlt);

/***/ }),

/***/ "./svg/icons/pie-chart-zero-data.svg":
/*!*******************************************!*\
  !*** ./svg/icons/pie-chart-zero-data.svg ***!
  \*******************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgPieChartZeroData = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "0 0 238 238"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "currentColor",
  fillRule: "evenodd",
  d: "M119 238c65.722 0 119-53.278 119-119S184.722 0 119 0 0 53.278 0 119s53.278 119 119 119m0-42c42.526 0 77-34.474 77-77s-34.474-77-77-77-77 34.474-77 77 34.474 77 77 77",
  clipRule: "evenodd"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgPieChartZeroData);

/***/ }),

/***/ "./svg/icons/star-fill.svg":
/*!*********************************!*\
  !*** ./svg/icons/star-fill.svg ***!
  \*********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgStarFill = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "0 0 24 24"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "currentColor",
  d: "m5.825 22 2.325-7.6L2 10h7.6L12 2l2.4 8H22l-6.15 4.4 2.325 7.6L12 17.3z"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgStarFill);

/***/ }),

/***/ "./svg/icons/tick.svg":
/*!****************************!*\
  !*** ./svg/icons/tick.svg ***!
  \****************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgTick = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "0 0 11 9"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  stroke: "currentColor",
  strokeWidth: 1.5,
  d: "M1 3.838 4.106 7 10 1"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgTick);

/***/ }),

/***/ "./svg/icons/visibility.svg":
/*!**********************************!*\
  !*** ./svg/icons/visibility.svg ***!
  \**********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgVisibility = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "0 0 19 19"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "currentColor",
  d: "m12.907 10.523-1.088-1.088q.17-.88-.506-1.65-.675-.768-1.743-.6L8.482 6.098q.319-.15.638-.225.337-.075.712-.075 1.407 0 2.381.994.994.975.994 2.381 0 .375-.075.712-.075.319-.225.638m2.4 2.362-1.088-1.05a8 8 0 0 0 1.257-1.18 6.7 6.7 0 0 0 .956-1.482 7.3 7.3 0 0 0-2.7-3q-1.743-1.125-3.9-1.125-.544 0-1.069.075t-1.031.225L6.57 4.185a8 8 0 0 1 1.575-.468 8.2 8.2 0 0 1 1.687-.169q2.831 0 5.044 1.575a8.87 8.87 0 0 1 3.206 4.05 8.8 8.8 0 0 1-1.144 2.063 8.2 8.2 0 0 1-1.631 1.65m.375 4.613-3.15-3.113a10 10 0 0 1-1.331.32 10 10 0 0 1-1.369.093q-2.831 0-5.044-1.556a9 9 0 0 1-3.206-4.07 8.7 8.7 0 0 1 .994-1.837q.6-.862 1.369-1.537l-2.063-2.1 1.05-1.05 13.8 13.8zM4.995 6.848A8 8 0 0 0 4 7.917q-.45.58-.769 1.256a7.46 7.46 0 0 0 2.681 3.019q1.763 1.106 3.919 1.106.375 0 .731-.038.357-.056.731-.112l-.675-.713a6 6 0 0 1-.393.094 4 4 0 0 1-.394.019q-1.405 0-2.4-.975-.975-.994-.975-2.4 0-.207.019-.394.037-.187.094-.394z"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgVisibility);

/***/ }),

/***/ "./svg/icons/warning-notice.svg":
/*!**************************************!*\
  !*** ./svg/icons/warning-notice.svg ***!
  \**************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgWarningNotice = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "none",
  viewBox: "0 0 24 24"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "currentColor",
  d: "M12 1c6.075 0 11 4.925 11 11s-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1m0 14a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3m-1-2h2V6h-2z"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgWarningNotice);

/***/ }),

/***/ "./svg/icons/warning-v2.svg":
/*!**********************************!*\
  !*** ./svg/icons/warning-v2.svg ***!
  \**********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgWarningV2 = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 22 19"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "currentColor",
  d: "M0 19h22L11 0zm12-3h-2v-2h2zm0-4h-2V8h2z"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgWarningV2);

/***/ }),

/***/ "./svg/icons/warning.svg":
/*!*******************************!*\
  !*** ./svg/icons/warning.svg ***!
  \*******************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "../node_modules/react/index.js");
var _path, _path2;
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }

const SvgWarning = props => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("svg", _extends({
  xmlns: "http://www.w3.org/2000/svg",
  fill: "currentColor",
  "aria-labelledby": "warning-title warning-desc",
  viewBox: "0 0 24 24"
}, props), _path || (_path = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  fill: "none",
  d: "M0 0h24v24H0z"
})), _path2 || (_path2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("path", {
  d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-2h2zm0-4h-2V7h2z"
})));
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SvgWarning);

/***/ }),

/***/ "@wordpress/i18n":
/*!*****************************************!*\
  !*** external ["googlesitekit","i18n"] ***!
  \*****************************************/
/***/ ((module) => {

"use strict";
module.exports = googlesitekit.i18n;

/***/ }),

/***/ "googlesitekit-api":
/*!****************************************!*\
  !*** external ["googlesitekit","api"] ***!
  \****************************************/
/***/ ((module) => {

"use strict";
module.exports = googlesitekit.api;

/***/ }),

/***/ "googlesitekit-components":
/*!***********************************************!*\
  !*** external ["googlesitekit","components"] ***!
  \***********************************************/
/***/ ((module) => {

"use strict";
module.exports = googlesitekit.components;

/***/ }),

/***/ "googlesitekit-data":
/*!*****************************************!*\
  !*** external ["googlesitekit","data"] ***!
  \*****************************************/
/***/ ((module) => {

"use strict";
module.exports = googlesitekit.data;

/***/ }),

/***/ "googlesitekit-modules":
/*!********************************************!*\
  !*** external ["googlesitekit","modules"] ***!
  \********************************************/
/***/ ((module) => {

"use strict";
module.exports = googlesitekit.modules;

/***/ }),

/***/ "googlesitekit-notifications":
/*!**************************************************!*\
  !*** external ["googlesitekit","notifications"] ***!
  \**************************************************/
/***/ ((module) => {

"use strict";
module.exports = googlesitekit.notifications;

/***/ }),

/***/ "googlesitekit-widgets":
/*!********************************************!*\
  !*** external ["googlesitekit","widgets"] ***!
  \********************************************/
/***/ ((module) => {

"use strict";
module.exports = googlesitekit.widgets;

/***/ })

},
/******/ __webpack_require__ => { // webpackRuntimeModules
/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
/******/ __webpack_require__.O(0, ["googlesitekit-vendor"], () => (__webpack_exec__("./js/googlesitekit-modules-analytics-4.js")));
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ }
]);
//# sourceMappingURL=googlesitekit-modules-analytics-4.js.map