{"version":3,"sources":["webpack:///./commits.js","webpack:///./pages/projects/commits/show/index.js","webpack:///./pager.js","webpack:///./gpg_badges.js","webpack:///./behaviors/shortcuts/shortcuts_navigation.js","webpack:///./project_select_combo_button.js","webpack:///./project_select.js","webpack:///./pages/projects/project.js","webpack:///./pages/projects/index.js"],"names":["CommitsList","limit","arguments","length","undefined","_classCallCheck","this","timer","$contentList","$","Pager","init","parseInt","processCommits","bind","content","searchField","lastSearch","val","initSearch","_this","on","clearTimeout","setTimeout","filterResults","_this2","form","search","Promise","resolve","commitsUrl","concat","attr","serialize","fadeTo","params","serializeArray","reduce","acc","obj","Object","assign","_defineProperty","name","value","axios","get","then","_ref","data","html","window","history","replaceState","page","document","title","catch","commitsCount","processedData","$processedData","$commitsHeadersLast","find","last","lastShownDay","loadedShownDayFirst","filter","first","nextUntil","not","Number","text","pluralize","localTimeAgo","addEventListener","querySelector","dataset","commitsLimit","ShortcutsNavigation","GpgBadges","fetch","jquery__WEBPACK_IMPORTED_MODULE_0__","__webpack_require__","jquery__WEBPACK_IMPORTED_MODULE_0___default","n","_lib_utils_common_utils__WEBPACK_IMPORTED_MODULE_1__","_lib_utils_axios_utils__WEBPACK_IMPORTED_MODULE_2__","_lib_utils_url_utility__WEBPACK_IMPORTED_MODULE_3__","__webpack_exports__","preload","disable","prepareData","noop","callback","container","url","removeParams","offset","getParameterByName","loading","getOld","initLoadMore","show","append","count","isScrollable","hide","$w","height","scrollTop","off","endlessScroll","bottomPixels","fireDelay","fireOnce","ceaseFire","is","tag","badges","displayError","createFlash","__","endpoint","reject","Error","parseQueryStringIntoObject","signatures","forEach","signature","commit_sha","replaceWith","_possibleConstructorReturn","_getPrototypeOf","call","Mousetrap","findAndFollowLink","enabledHelp","push","Shortcuts","ProjectSelectComboButton","select","projectSelectInput","newItemBtn","resourceType","resourceLabel","formattedText","deriveTextVariants","groupId","bindEvents","initLocalStorage","siblings","e","openDropdown","getProjectFromLocalStorage","preventDefault","selectProject","AccessorUtilities","isLocalStorageAccessSafe","localStorageKey","localStorageItemType","join","setBtnTextFromLocalStorage","event","currentTarget","select2","selectedProjectData","JSON","parse","projectMeta","setNewItemBtnAttributes","setProjectInLocalStorage","cachedProjectData","project","defaultTextPrefix","presetTextSuffix","projectString","localStorage","getItem","stringify","setItem","split","slice","projectSelect","each","i","placeholder","simpleFilter","includeGroups","allProjects","orderBy","withIssuesEnabled","withMergeRequestsEnabled","withShared","includeProjectsInSubgroups","allowClear","minimumInputLength","query","finalCallback","projectsCallback","projects","results","groupsCallback","groups","Api","term","groupProjects","with_issues_enabled","with_merge_requests_enabled","with_shared","include_subgroups","order_by","membership","id","web_url","name_with_namespace","initSelection","el","dropdownCssClass","d","Project","$cloneOptions","$projectCloneField","$cloneBtnLabel","mobileCloneField","selectedCloneOption","trim","addClass","$this","cloneType","removeClass","$el","activeText","$label","closest","toggleClass","clipboardText","initRefSwitcher","parents","submit","Cookies","set","remove","projectId","cookieKey","projectSelectDropdown","changeProject","location","refListItem","createElement","refLink","href","$dropdown","selected","glDropdown","ref","flash","selectable","filterable","filterRemote","filterByText","inputFieldName","fieldName","renderRow","li","cloneNode","header","className","textContent","link","appendChild","toggleLabel","clicked","options","$form","$visit","shouldVisit","action","divider","indexOf","visitUrl","r","_dismissable_callout__WEBPACK_IMPORTED_MODULE_0__","_projects_gke_cluster_dropdowns__WEBPACK_IMPORTED_MODULE_1__","_project__WEBPACK_IMPORTED_MODULE_2__","_behaviors_shortcuts_shortcuts_navigation__WEBPACK_IMPORTED_MODULE_3__","body","initDismissableCallout","initGkeDropdowns"],"mappings":"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","file":"pages.projects.commits.show.1bc9576c.chunk.js","sourcesContent":["import $ from 'jquery';\nimport { pluralize } from './lib/utils/text_utility';\nimport { localTimeAgo } from './lib/utils/datetime_utility';\nimport Pager from './pager';\nimport axios from './lib/utils/axios_utils';\n\nexport default class CommitsList {\n constructor(limit = 0) {\n this.timer = null;\n\n this.$contentList = $('.content_list');\n\n Pager.init(parseInt(limit, 10), false, false, this.processCommits.bind(this));\n\n this.content = $('#commits-list');\n this.searchField = $('#commits-search');\n this.lastSearch = this.searchField.val();\n this.initSearch();\n }\n\n initSearch() {\n this.timer = null;\n this.searchField.on('keyup', () => {\n clearTimeout(this.timer);\n this.timer = setTimeout(this.filterResults.bind(this), 500);\n });\n }\n\n filterResults() {\n const form = $('.commits-search-form');\n const search = this.searchField.val();\n if (search === this.lastSearch) return Promise.resolve();\n const commitsUrl = `${form.attr('action')}?${form.serialize()}`;\n this.content.fadeTo('fast', 0.5);\n const params = form.serializeArray().reduce(\n (acc, obj) =>\n Object.assign(acc, {\n [obj.name]: obj.value,\n }),\n {},\n );\n\n return axios\n .get(form.attr('action'), {\n params,\n })\n .then(({ data }) => {\n this.lastSearch = search;\n this.content.html(data.html);\n this.content.fadeTo('fast', 1.0);\n\n // Change url so if user reload a page - search results are saved\n window.history.replaceState(\n {\n page: commitsUrl,\n },\n document.title,\n commitsUrl,\n );\n })\n .catch(() => {\n this.content.fadeTo('fast', 1.0);\n this.lastSearch = null;\n });\n }\n\n // Prepare loaded data.\n processCommits(data) {\n let processedData = data;\n const $processedData = $(processedData);\n const $commitsHeadersLast = this.$contentList.find('li.js-commit-header').last();\n const lastShownDay = $commitsHeadersLast.data('day');\n const $loadedCommitsHeadersFirst = $processedData.filter('li.js-commit-header').first();\n const loadedShownDayFirst = $loadedCommitsHeadersFirst.data('day');\n let commitsCount;\n\n // If commits headers show the same date,\n // remove the last header and change the previous one.\n if (lastShownDay === loadedShownDayFirst) {\n // Last shown commits count under the last commits header.\n commitsCount = $commitsHeadersLast.nextUntil('li.js-commit-header').find('li.commit').length;\n\n // Remove duplicate of commits header.\n processedData = $processedData.not(`li.js-commit-header[data-day='${loadedShownDayFirst}']`);\n\n // Update commits count in the previous commits header.\n commitsCount += Number(\n $(processedData)\n .nextUntil('li.js-commit-header')\n .first()\n .find('li.commit').length,\n );\n $commitsHeadersLast\n .find('span.commits-count')\n .text(`${commitsCount} ${pluralize('commit', commitsCount)}`);\n }\n\n localTimeAgo($processedData.find('.js-timeago'));\n\n return processedData;\n }\n}\n","import CommitsList from '~/commits';\nimport GpgBadges from '~/gpg_badges';\nimport ShortcutsNavigation from '~/behaviors/shortcuts/shortcuts_navigation';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n new CommitsList(document.querySelector('.js-project-commits-show').dataset.commitsLimit); // eslint-disable-line no-new\n new ShortcutsNavigation(); // eslint-disable-line no-new\n GpgBadges.fetch();\n});\n","import $ from 'jquery';\nimport { getParameterByName } from '~/lib/utils/common_utils';\nimport axios from './lib/utils/axios_utils';\nimport { removeParams } from './lib/utils/url_utility';\n\nconst ENDLESS_SCROLL_BOTTOM_PX = 400;\nconst ENDLESS_SCROLL_FIRE_DELAY_MS = 1000;\n\nexport default {\n init(\n limit = 0,\n preload = false,\n disable = false,\n prepareData = $.noop,\n callback = $.noop,\n container = '',\n ) {\n this.url = $('.content_list').data('href') || removeParams(['limit', 'offset']);\n this.limit = limit;\n this.offset = parseInt(getParameterByName('offset'), 10) || this.limit;\n this.disable = disable;\n this.prepareData = prepareData;\n this.callback = callback;\n this.loading = $(`${container} .loading`).first();\n if (preload) {\n this.offset = 0;\n this.getOld();\n }\n this.initLoadMore();\n },\n\n getOld() {\n this.loading.show();\n axios\n .get(this.url, {\n params: {\n limit: this.limit,\n offset: this.offset,\n },\n })\n .then(({ data }) => {\n this.append(data.count, this.prepareData(data.html));\n this.callback();\n\n // keep loading until we've filled the viewport height\n if (!this.disable && !this.isScrollable()) {\n this.getOld();\n } else {\n this.loading.hide();\n }\n })\n .catch(() => this.loading.hide());\n },\n\n append(count, html) {\n $('.content_list').append(html);\n if (count > 0) {\n this.offset += count;\n } else {\n this.disable = true;\n }\n },\n\n isScrollable() {\n const $w = $(window);\n return $(document).height() > $w.height() + $w.scrollTop() + ENDLESS_SCROLL_BOTTOM_PX;\n },\n\n initLoadMore() {\n $(document).off('scroll');\n $(document).endlessScroll({\n bottomPixels: ENDLESS_SCROLL_BOTTOM_PX,\n fireDelay: ENDLESS_SCROLL_FIRE_DELAY_MS,\n fireOnce: true,\n ceaseFire: () => this.disable === true,\n callback: () => {\n if (!this.loading.is(':visible')) {\n this.loading.show();\n this.getOld();\n }\n },\n });\n },\n};\n","import $ from 'jquery';\nimport { parseQueryStringIntoObject } from '~/lib/utils/common_utils';\nimport axios from '~/lib/utils/axios_utils';\nimport createFlash from '~/flash';\nimport { __ } from '~/locale';\n\nexport default class GpgBadges {\n static fetch() {\n const tag = $('.js-signature-container');\n if (tag.length === 0) {\n return Promise.resolve();\n }\n\n const badges = $('.js-loading-gpg-badge');\n\n badges.html('');\n\n const displayError = () => createFlash(__('An error occurred while loading commit signatures'));\n\n const endpoint = tag.data('signaturesPath');\n if (!endpoint) {\n displayError();\n return Promise.reject(new Error('Missing commit signatures endpoint!'));\n }\n\n const params = parseQueryStringIntoObject(tag.serialize());\n return axios\n .get(endpoint, { params })\n .then(({ data }) => {\n data.signatures.forEach(signature => {\n badges.filter(`[data-commit-sha=\"${signature.commit_sha}\"]`).replaceWith(signature.html);\n });\n })\n .catch(displayError);\n }\n}\n","import Mousetrap from 'mousetrap';\nimport findAndFollowLink from '../../lib/utils/navigation_utility';\nimport Shortcuts from './shortcuts';\n\nexport default class ShortcutsNavigation extends Shortcuts {\n constructor() {\n super();\n\n Mousetrap.bind('g p', () => findAndFollowLink('.shortcuts-project'));\n Mousetrap.bind('g v', () => findAndFollowLink('.shortcuts-project-activity'));\n Mousetrap.bind('g f', () => findAndFollowLink('.shortcuts-tree'));\n Mousetrap.bind('g c', () => findAndFollowLink('.shortcuts-commits'));\n Mousetrap.bind('g j', () => findAndFollowLink('.shortcuts-builds'));\n Mousetrap.bind('g n', () => findAndFollowLink('.shortcuts-network'));\n Mousetrap.bind('g d', () => findAndFollowLink('.shortcuts-repository-charts'));\n Mousetrap.bind('g i', () => findAndFollowLink('.shortcuts-issues'));\n Mousetrap.bind('g b', () => findAndFollowLink('.shortcuts-issue-boards'));\n Mousetrap.bind('g m', () => findAndFollowLink('.shortcuts-merge_requests'));\n Mousetrap.bind('g w', () => findAndFollowLink('.shortcuts-wiki'));\n Mousetrap.bind('g s', () => findAndFollowLink('.shortcuts-snippets'));\n Mousetrap.bind('g k', () => findAndFollowLink('.shortcuts-kubernetes'));\n Mousetrap.bind('g e', () => findAndFollowLink('.shortcuts-environments'));\n Mousetrap.bind('g l', () => findAndFollowLink('.shortcuts-metrics'));\n Mousetrap.bind('i', () => findAndFollowLink('.shortcuts-new-issue'));\n\n this.enabledHelp.push('.hidden-shortcut.project');\n }\n}\n","import $ from 'jquery';\nimport AccessorUtilities from './lib/utils/accessor';\n\nexport default class ProjectSelectComboButton {\n constructor(select) {\n this.projectSelectInput = $(select);\n this.newItemBtn = $('.new-project-item-link');\n this.resourceType = this.newItemBtn.data('type');\n this.resourceLabel = this.newItemBtn.data('label');\n this.formattedText = this.deriveTextVariants();\n this.groupId = this.projectSelectInput.data('groupId');\n this.bindEvents();\n this.initLocalStorage();\n }\n\n bindEvents() {\n this.projectSelectInput\n .siblings('.new-project-item-select-button')\n .on('click', e => this.openDropdown(e));\n\n this.newItemBtn.on('click', e => {\n if (!this.getProjectFromLocalStorage()) {\n e.preventDefault();\n this.openDropdown(e);\n }\n });\n\n this.projectSelectInput.on('change', () => this.selectProject());\n }\n\n initLocalStorage() {\n const localStorageIsSafe = AccessorUtilities.isLocalStorageAccessSafe();\n\n if (localStorageIsSafe) {\n this.localStorageKey = [\n 'group',\n this.groupId,\n this.formattedText.localStorageItemType,\n 'recent-project',\n ].join('-');\n this.setBtnTextFromLocalStorage();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n openDropdown(event) {\n $(event.currentTarget)\n .siblings('.project-item-select')\n .select2('open');\n }\n\n selectProject() {\n const selectedProjectData = JSON.parse(this.projectSelectInput.val());\n const projectUrl = `${selectedProjectData.url}/${this.projectSelectInput.data('relativePath')}`;\n const projectName = selectedProjectData.name;\n\n const projectMeta = {\n url: projectUrl,\n name: projectName,\n };\n\n this.setNewItemBtnAttributes(projectMeta);\n this.setProjectInLocalStorage(projectMeta);\n }\n\n setBtnTextFromLocalStorage() {\n const cachedProjectData = this.getProjectFromLocalStorage();\n\n this.setNewItemBtnAttributes(cachedProjectData);\n }\n\n setNewItemBtnAttributes(project) {\n if (project) {\n this.newItemBtn.attr('href', project.url);\n this.newItemBtn.text(`${this.formattedText.defaultTextPrefix} in ${project.name}`);\n } else {\n this.newItemBtn.text(`Select project to create ${this.formattedText.presetTextSuffix}`);\n }\n }\n\n getProjectFromLocalStorage() {\n const projectString = localStorage.getItem(this.localStorageKey);\n\n return JSON.parse(projectString);\n }\n\n setProjectInLocalStorage(projectMeta) {\n const projectString = JSON.stringify(projectMeta);\n\n localStorage.setItem(this.localStorageKey, projectString);\n }\n\n deriveTextVariants() {\n const defaultTextPrefix = this.resourceLabel;\n\n // the trailing slice call depluralizes each of these strings (e.g. new-issues -> new-issue)\n const localStorageItemType = `new-${this.resourceType\n .split('_')\n .join('-')\n .slice(0, -1)}`;\n const presetTextSuffix = this.resourceType\n .split('_')\n .join(' ')\n .slice(0, -1);\n\n return {\n localStorageItemType, // new-issue / new-merge-request\n defaultTextPrefix, // New issue / New merge request\n presetTextSuffix, // issue / merge request\n };\n }\n}\n","/* eslint-disable func-names, no-var, object-shorthand, one-var, no-else-return */\n\nimport $ from 'jquery';\nimport Api from './api';\nimport ProjectSelectComboButton from './project_select_combo_button';\n\nexport default function projectSelect() {\n $('.ajax-project-select').each(function(i, select) {\n var placeholder;\n const simpleFilter = $(select).data('simpleFilter') || false;\n this.groupId = $(select).data('groupId');\n this.includeGroups = $(select).data('includeGroups');\n this.allProjects = $(select).data('allProjects') || false;\n this.orderBy = $(select).data('orderBy') || 'id';\n this.withIssuesEnabled = $(select).data('withIssuesEnabled');\n this.withMergeRequestsEnabled = $(select).data('withMergeRequestsEnabled');\n this.withShared =\n $(select).data('withShared') === undefined ? true : $(select).data('withShared');\n this.includeProjectsInSubgroups = $(select).data('includeProjectsInSubgroups') || false;\n this.allowClear = $(select).data('allowClear') || false;\n\n placeholder = 'Search for project';\n if (this.includeGroups) {\n placeholder += ' or group';\n }\n\n $(select).select2({\n placeholder: placeholder,\n minimumInputLength: 0,\n query: (function(_this) {\n return function(query) {\n var finalCallback, projectsCallback;\n finalCallback = function(projects) {\n var data;\n data = {\n results: projects,\n };\n return query.callback(data);\n };\n if (_this.includeGroups) {\n projectsCallback = function(projects) {\n var groupsCallback;\n groupsCallback = function(groups) {\n var data;\n data = groups.concat(projects);\n return finalCallback(data);\n };\n return Api.groups(query.term, {}, groupsCallback);\n };\n } else {\n projectsCallback = finalCallback;\n }\n if (_this.groupId) {\n return Api.groupProjects(\n _this.groupId,\n query.term,\n {\n with_issues_enabled: _this.withIssuesEnabled,\n with_merge_requests_enabled: _this.withMergeRequestsEnabled,\n with_shared: _this.withShared,\n include_subgroups: _this.includeProjectsInSubgroups,\n },\n projectsCallback,\n );\n } else {\n return Api.projects(\n query.term,\n {\n order_by: _this.orderBy,\n with_issues_enabled: _this.withIssuesEnabled,\n with_merge_requests_enabled: _this.withMergeRequestsEnabled,\n membership: !_this.allProjects,\n },\n projectsCallback,\n );\n }\n };\n })(this),\n id: function(project) {\n if (simpleFilter) return project.id;\n return JSON.stringify({\n name: project.name,\n url: project.web_url,\n });\n },\n text: function(project) {\n return project.name_with_namespace || project.name;\n },\n\n initSelection: function(el, callback) {\n return Api.project(el.val()).then(({ data }) => callback(data));\n },\n\n allowClear: this.allowClear,\n\n dropdownCssClass: 'ajax-project-dropdown',\n });\n if (simpleFilter) return select;\n return new ProjectSelectComboButton(select);\n });\n}\n","/* eslint-disable func-names, no-var, no-return-assign, one-var, object-shorthand, vars-on-top */\n\nimport $ from 'jquery';\nimport Cookies from 'js-cookie';\nimport { __ } from '~/locale';\nimport { visitUrl } from '~/lib/utils/url_utility';\nimport axios from '~/lib/utils/axios_utils';\nimport flash from '~/flash';\nimport projectSelect from '../../project_select';\n\nexport default class Project {\n constructor() {\n const $cloneOptions = $('ul.clone-options-dropdown');\n const $projectCloneField = $('#project_clone');\n const $cloneBtnLabel = $('.js-git-clone-holder .js-clone-dropdown-label');\n const mobileCloneField = document.querySelector(\n '.js-mobile-git-clone .js-clone-dropdown-label',\n );\n\n const selectedCloneOption = $cloneBtnLabel.text().trim();\n if (selectedCloneOption.length > 0) {\n $(`a:contains('${selectedCloneOption}')`, $cloneOptions).addClass('is-active');\n }\n\n $('a', $cloneOptions).on('click', e => {\n e.preventDefault();\n const $this = $(e.currentTarget);\n const url = $this.attr('href');\n const cloneType = $this.data('cloneType');\n\n $('.is-active', $cloneOptions).removeClass('is-active');\n $(`a[data-clone-type=\"${cloneType}\"]`).each(function() {\n const $el = $(this);\n const activeText = $el.find('.dropdown-menu-inner-title').text();\n const $container = $el.closest('.project-clone-holder');\n const $label = $container.find('.js-clone-dropdown-label');\n\n $el.toggleClass('is-active');\n $label.text(activeText);\n });\n\n if (mobileCloneField) {\n mobileCloneField.dataset.clipboardText = url;\n } else {\n $projectCloneField.val(url);\n }\n $('.js-git-empty .js-clone').text(url);\n });\n // Ref switcher\n Project.initRefSwitcher();\n $('.project-refs-select').on('change', function() {\n return $(this)\n .parents('form')\n .submit();\n });\n $('.hide-no-ssh-message').on('click', function(e) {\n Cookies.set('hide_no_ssh_message', 'false');\n $(this)\n .parents('.no-ssh-key-message')\n .remove();\n return e.preventDefault();\n });\n $('.hide-no-password-message').on('click', function(e) {\n Cookies.set('hide_no_password_message', 'false');\n $(this)\n .parents('.no-password-message')\n .remove();\n return e.preventDefault();\n });\n $('.hide-auto-devops-implicitly-enabled-banner').on('click', function(e) {\n const projectId = $(this).data('project-id');\n const cookieKey = `hide_auto_devops_implicitly_enabled_banner_${projectId}`;\n Cookies.set(cookieKey, 'false');\n $(this)\n .parents('.auto-devops-implicitly-enabled-banner')\n .remove();\n return e.preventDefault();\n });\n Project.projectSelectDropdown();\n }\n\n static projectSelectDropdown() {\n projectSelect();\n $('.project-item-select').on('click', e => Project.changeProject($(e.currentTarget).val()));\n }\n\n static changeProject(url) {\n return (window.location = url);\n }\n\n static initRefSwitcher() {\n var refListItem = document.createElement('li');\n var refLink = document.createElement('a');\n\n refLink.href = '#';\n\n return $('.js-project-refs-dropdown').each(function() {\n var $dropdown, selected;\n $dropdown = $(this);\n selected = $dropdown.data('selected');\n return $dropdown.glDropdown({\n data(term, callback) {\n axios\n .get($dropdown.data('refsUrl'), {\n params: {\n ref: $dropdown.data('ref'),\n search: term,\n },\n })\n .then(({ data }) => callback(data))\n .catch(() => flash(__('An error occurred while getting projects')));\n },\n selectable: true,\n filterable: true,\n filterRemote: true,\n filterByText: true,\n inputFieldName: $dropdown.data('inputFieldName'),\n fieldName: $dropdown.data('fieldName'),\n renderRow: function(ref) {\n var li = refListItem.cloneNode(false);\n\n if (ref.header != null) {\n li.className = 'dropdown-header';\n li.textContent = ref.header;\n } else {\n var link = refLink.cloneNode(false);\n\n if (ref === selected) {\n link.className = 'is-active';\n }\n\n link.textContent = ref;\n link.dataset.ref = ref;\n\n li.appendChild(link);\n }\n\n return li;\n },\n id: function(obj, $el) {\n return $el.attr('data-ref');\n },\n toggleLabel: function(obj, $el) {\n return $el.text().trim();\n },\n clicked: function(options) {\n const { e } = options;\n e.preventDefault();\n if ($('input[name=\"ref\"]').length) {\n var $form = $dropdown.closest('form');\n\n var $visit = $dropdown.data('visit');\n var shouldVisit = $visit ? true : $visit;\n var action = $form.attr('action');\n var divider = action.indexOf('?') === -1 ? '?' : '&';\n if (shouldVisit) {\n visitUrl(`${action}${divider}${$form.serialize()}`);\n }\n }\n },\n });\n });\n }\n}\n","import initDismissableCallout from '~/dismissable_callout';\nimport initGkeDropdowns from '~/projects/gke_cluster_dropdowns';\nimport Project from './project';\nimport ShortcutsNavigation from '../../behaviors/shortcuts/shortcuts_navigation';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const { page } = document.body.dataset;\n const newClusterViews = [\n 'projects:clusters:new',\n 'projects:clusters:create_gcp',\n 'projects:clusters:create_user',\n ];\n\n if (newClusterViews.indexOf(page) > -1) {\n initDismissableCallout('.gcp-signup-offer');\n initGkeDropdowns();\n }\n\n new Project(); // eslint-disable-line no-new\n new ShortcutsNavigation(); // eslint-disable-line no-new\n});\n"],"sourceRoot":""}