import { startsWith, get, some, mapValues } from "lodash"; import React from "react"; import PropTypes from "prop-types"; import cx from "classnames"; import Tooltip from "@/components/Tooltip"; import Drawer from "antd/lib/drawer"; import Link from "@/components/Link"; import PlainButton from "@/components/PlainButton"; import CloseOutlinedIcon from "@ant-design/icons/CloseOutlined"; import BigMessage from "@/components/BigMessage"; import DynamicComponent, { registerComponent } from "@/components/DynamicComponent"; import "./HelpTrigger.less"; const DOMAIN = "https://redash.io"; const HELP_PATH = "/help"; const IFRAME_TIMEOUT = 20000; const IFRAME_URL_UPDATE_MESSAGE = "iframe_url"; export const TYPES = mapValues( { HOME: ["", "Help"], VALUE_SOURCE_OPTIONS: ["/user-guide/querying/query-parameters#Value-Source-Options", "Guide: Value Source Options"], SHARE_DASHBOARD: ["/user-guide/dashboards/sharing-dashboards", "Guide: Sharing and Embedding Dashboards"], AUTHENTICATION_OPTIONS: ["/user-guide/users/authentication-options", "Guide: Authentication Options"], USAGE_DATA_SHARING: ["/open-source/admin-guide/usage-data", "Help: Anonymous Usage Data Sharing"], DS_ATHENA: ["/data-sources/amazon-athena-setup", "Guide: Help Setting up Amazon Athena"], DS_BIGQUERY: ["/data-sources/bigquery-setup", "Guide: Help Setting up BigQuery"], DS_URL: ["/data-sources/querying-urls", "Guide: Help Setting up URL"], DS_MONGODB: ["/data-sources/mongodb-setup", "Guide: Help Setting up MongoDB"], DS_GOOGLE_SPREADSHEETS: [ "/data-sources/querying-a-google-spreadsheet", "Guide: Help Setting up Google Spreadsheets", ], DS_GOOGLE_ANALYTICS: ["/data-sources/google-analytics-setup", "Guide: Help Setting up Google Analytics"], DS_AXIBASETSD: ["/data-sources/axibase-time-series-database", "Guide: Help Setting up Axibase Time Series"], DS_RESULTS: ["/user-guide/querying/query-results-data-source", "Guide: Help Setting up Query Results"], ALERT_SETUP: ["/user-guide/alerts/setting-up-an-alert", "Guide: Setting Up a New Alert"], MAIL_CONFIG: ["/open-source/setup/#Mail-Configuration", "Guide: Mail Configuration"], ALERT_NOTIF_TEMPLATE_GUIDE: ["/user-guide/alerts/custom-alert-notifications", "Guide: Custom Alerts Notifications"], FAVORITES: ["/user-guide/querying/favorites-tagging/#Favorites", "Guide: Favorites"], MANAGE_PERMISSIONS: [ "/user-guide/querying/writing-queries#Managing-Query-Permissions", "Guide: Managing Query Permissions", ], NUMBER_FORMAT_SPECS: ["/user-guide/visualizations/formatting-numbers", "Formatting Numbers"], GETTING_STARTED: ["/user-guide/getting-started", "Guide: Getting Started"], DASHBOARDS: ["/user-guide/dashboards", "Guide: Dashboards"], QUERIES: ["/user-guide/querying", "Guide: Queries"], ALERTS: ["/user-guide/alerts", "Guide: Alerts"], }, ([url, title]) => [DOMAIN + HELP_PATH + url, title] ); const HelpTriggerPropTypes = { type: PropTypes.string, href: PropTypes.string, title: PropTypes.node, className: PropTypes.string, showTooltip: PropTypes.bool, renderAsLink: PropTypes.bool, children: PropTypes.node, }; const HelpTriggerDefaultProps = { type: null, href: null, title: null, className: null, showTooltip: true, renderAsLink: false, children: