blob: 07d37fa46ab38084b04df47797d287ee9cb9f545 [file] [log] [blame]
/**
* @license
* Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @fileoverview This file is a backwards-compatibility shim.
* Before Polygerrit converted to ES Modules, it exposes some variables out onto
* the global namespace. Plugins can depend on these variables and we must
* expose these variables until plugins switch to direct import from polygerrit.
*/
import {getAccountDisplayName, getDisplayName, getGroupDisplayName, getUserName} from '../utils/display-name-util.js';
import {GrAnnotation} from './diff/gr-diff-highlight/gr-annotation.js';
import {GrAttributeHelper} from './plugins/gr-attribute-helper/gr-attribute-helper.js';
import {GrDiffLine, GrDiffLineType} from './diff/gr-diff/gr-diff-line.js';
import {GrDiffGroup, GrDiffGroupType} from './diff/gr-diff/gr-diff-group.js';
import {GrDiffBuilder} from './diff/gr-diff-builder/gr-diff-builder.js';
import {GrDiffBuilderSideBySide} from './diff/gr-diff-builder/gr-diff-builder-side-by-side.js';
import {GrDiffBuilderImage} from './diff/gr-diff-builder/gr-diff-builder-image.js';
import {GrDiffBuilderUnified} from './diff/gr-diff-builder/gr-diff-builder-unified.js';
import {GrDiffBuilderBinary} from './diff/gr-diff-builder/gr-diff-builder-binary.js';
import {GrChangeActionsInterface} from './shared/gr-js-api-interface/gr-change-actions-js-api.js';
import {GrChangeReplyInterface} from './shared/gr-js-api-interface/gr-change-reply-js-api.js';
import {GrEditConstants} from './edit/gr-edit-constants.js';
import {GrDomHooksManager, GrDomHook} from './plugins/gr-dom-hooks/gr-dom-hooks.js';
import {GrEtagDecorator} from './shared/gr-rest-api-interface/gr-etag-decorator.js';
import {GrThemeApi} from './plugins/gr-theme-api/gr-theme-api.js';
import {SiteBasedCache, FetchPromisesCache, GrRestApiHelper} from './shared/gr-rest-api-interface/gr-rest-apis/gr-rest-api-helper.js';
import {GrLinkTextParser} from './shared/gr-linked-text/link-text-parser.js';
import {getPluginEndpoints, GrPluginEndpoints} from './shared/gr-js-api-interface/gr-plugin-endpoints.js';
import {GrReviewerUpdatesParser} from './shared/gr-rest-api-interface/gr-reviewer-updates-parser.js';
import {GrPopupInterface} from './plugins/gr-popup-interface/gr-popup-interface.js';
import {GrCountStringFormatter} from './shared/gr-count-string-formatter/gr-count-string-formatter.js';
import {GrReviewerSuggestionsProvider, SUGGESTIONS_PROVIDERS_USERS_TYPES} from '../scripts/gr-reviewer-suggestions-provider/gr-reviewer-suggestions-provider.js';
import {util} from '../scripts/util.js';
import {page} from '../utils/page-wrapper-utils.js';
import {appContext} from '../services/app-context.js';
import {GrAdminApi} from './plugins/gr-admin-api/gr-admin-api.js';
import {GrAnnotationActionsContext} from './shared/gr-js-api-interface/gr-annotation-actions-context.js';
import {GrAnnotationActionsInterface} from './shared/gr-js-api-interface/gr-annotation-actions-js-api.js';
import {GrChangeMetadataApi} from './plugins/gr-change-metadata-api/gr-change-metadata-api.js';
import {GrEmailSuggestionsProvider} from '../scripts/gr-email-suggestions-provider/gr-email-suggestions-provider.js';
import {GrGroupSuggestionsProvider} from '../scripts/gr-group-suggestions-provider/gr-group-suggestions-provider.js';
import {GrEventHelper} from './plugins/gr-event-helper/gr-event-helper.js';
import {GrPluginRestApi} from './shared/gr-js-api-interface/gr-plugin-rest-api.js';
import {GrRepoApi} from './plugins/gr-repo-api/gr-repo-api.js';
import {GrSettingsApi} from './plugins/gr-settings-api/gr-settings-api.js';
import {GrStylesApi} from './plugins/gr-styles-api/gr-styles-api.js';
import {getPluginLoader, PluginLoader} from './shared/gr-js-api-interface/gr-plugin-loader.js';
import {GrPluginActionContext} from './shared/gr-js-api-interface/gr-plugin-action-context.js';
import {getPluginNameFromUrl, getRestAPI, PLUGIN_LOADING_TIMEOUT_MS, PRELOADED_PROTOCOL, send} from './shared/gr-js-api-interface/gr-api-utils.js';
import {getBaseUrl} from '../utils/url-util.js';
import {GerritNav} from './core/gr-navigation/gr-navigation.js';
import {getRootElement} from '../scripts/rootElement.js';
import {rangesEqual} from './diff/gr-diff/gr-diff-utils.js';
import {RevisionInfo} from './shared/revision-info/revision-info.js';
import {CoverageType} from '../types/types.js';
import {_setHiddenScroll, getHiddenScroll} from '../scripts/hiddenscroll.js';
export function initGlobalVariables() {
window.GrDisplayNameUtils = {
getUserName,
getDisplayName,
getAccountDisplayName,
getGroupDisplayName,
};
window.GrAnnotation = GrAnnotation;
window.GrAttributeHelper = GrAttributeHelper;
window.GrDiffLine = GrDiffLine;
window.GrDiffLineType = GrDiffLineType;
window.GrDiffGroup = GrDiffGroup;
window.GrDiffGroupType = GrDiffGroupType;
window.GrDiffBuilder = GrDiffBuilder;
window.GrDiffBuilderSideBySide = GrDiffBuilderSideBySide;
window.GrDiffBuilderImage = GrDiffBuilderImage;
window.GrDiffBuilderUnified = GrDiffBuilderUnified;
window.GrDiffBuilderBinary = GrDiffBuilderBinary;
window.GrChangeActionsInterface = GrChangeActionsInterface;
window.GrChangeReplyInterface = GrChangeReplyInterface;
window.GrEditConstants = GrEditConstants;
window.GrDomHooksManager = GrDomHooksManager;
window.GrDomHook = GrDomHook;
window.GrEtagDecorator = GrEtagDecorator;
window.GrThemeApi = GrThemeApi;
window.SiteBasedCache = SiteBasedCache;
window.FetchPromisesCache = FetchPromisesCache;
window.GrRestApiHelper = GrRestApiHelper;
window.GrLinkTextParser = GrLinkTextParser;
window.GrPluginEndpoints = GrPluginEndpoints;
window.GrReviewerUpdatesParser = GrReviewerUpdatesParser;
window.GrPopupInterface = GrPopupInterface;
window.GrCountStringFormatter = GrCountStringFormatter;
window.GrReviewerSuggestionsProvider = GrReviewerSuggestionsProvider;
window.util = util;
window.page = page;
window.Auth = appContext.authService;
window.EventEmitter = appContext.eventEmitter;
window.GrAdminApi = GrAdminApi;
window.GrAnnotationActionsContext = GrAnnotationActionsContext;
window.GrAnnotationActionsInterface = GrAnnotationActionsInterface;
window.GrChangeMetadataApi = GrChangeMetadataApi;
window.GrEmailSuggestionsProvider = GrEmailSuggestionsProvider;
window.GrGroupSuggestionsProvider = GrGroupSuggestionsProvider;
window.GrEventHelper = GrEventHelper;
window.GrPluginRestApi = GrPluginRestApi;
window.GrRepoApi = GrRepoApi;
window.GrSettingsApi = GrSettingsApi;
window.GrStylesApi = GrStylesApi;
window.PluginLoader = PluginLoader;
window.GrPluginActionContext = GrPluginActionContext;
window._apiUtils = {
getPluginNameFromUrl,
send,
getRestAPI,
getBaseUrl,
PRELOADED_PROTOCOL,
PLUGIN_LOADING_TIMEOUT_MS,
};
window.Gerrit = window.Gerrit || {};
window.Gerrit.Nav = GerritNav;
window.Gerrit.getRootElement = getRootElement;
window.Gerrit.Auth = appContext.authService;
window.Gerrit._pluginLoader = getPluginLoader();
// TODO: should define as a getter
window.Gerrit._endpoints = getPluginEndpoints();
window.Gerrit.slotToContent = slot => slot;
window.Gerrit.rangesEqual = rangesEqual;
window.Gerrit.SUGGESTIONS_PROVIDERS_USERS_TYPES =
SUGGESTIONS_PROVIDERS_USERS_TYPES;
window.Gerrit.RevisionInfo = RevisionInfo;
window.Gerrit.CoverageType = CoverageType;
Object.defineProperty(window.Gerrit, 'hiddenscroll', {
get: getHiddenScroll,
set: _setHiddenScroll,
});
}