{"version":3,"sources":["webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/banner/banner.js","webpack:///./namespaces/leave_by_url.js","webpack:////build/source/ee/app/assets/javascripts/pages/projects/show/graphql/project_compliance_frameworks.query.graphql","webpack:///./tabs/constants.js","webpack:///./tabs/index.js","webpack:///./vue_shared/components/dismissible_alert.vue?5086","webpack:///vue_shared/components/dismissible_alert.vue","webpack:///./vue_shared/components/dismissible_alert.vue?9f2a","webpack:///./vue_shared/components/dismissible_alert.vue","webpack:///./vue_alerts.js","webpack:///./vue_shared/components/download_dropdown/init_download_dropdowns.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/label/label.js","webpack:////build/source/ee/app/assets/javascripts/vue_shared/components/tier_badge/tier_badge_popover.vue?0bba","webpack:///../../../ee/app/assets/javascripts/vue_shared/components/tier_badge/tier_badge_popover.vue","webpack:////build/source/ee/app/assets/javascripts/vue_shared/components/tier_badge/tier_badge_popover.vue?beff","webpack:////build/source/ee/app/assets/javascripts/vue_shared/components/tier_badge/tier_badge_popover.vue","webpack:////build/source/ee/app/assets/javascripts/vue_shared/components/tier_badge/tier_badge.vue?4f4d","webpack:///../../../ee/app/assets/javascripts/vue_shared/components/tier_badge/tier_badge.vue","webpack:////build/source/ee/app/assets/javascripts/vue_shared/components/tier_badge/tier_badge.vue?d2e4","webpack:////build/source/ee/app/assets/javascripts/vue_shared/components/tier_badge/tier_badge.vue","webpack:////build/source/ee/app/assets/javascripts/groups/init_tier_badge_trigger.js","webpack:////build/source/ee/app/assets/javascripts/compliance_dashboard/constants.js","webpack:////build/source/ee/app/assets/javascripts/compliance_dashboard/components/shared/framework_badge.vue","webpack:////build/source/ee/app/assets/javascripts/compliance_dashboard/components/shared/framework_badge.vue?a53e","webpack:///../../../ee/app/assets/javascripts/compliance_dashboard/components/shared/framework_badge.vue","webpack:////build/source/ee/app/assets/javascripts/compliance_dashboard/components/shared/framework_badge.vue?4bb8","webpack:///./projects/clusters_deprecation_alert/components/clusters_deprecation_alert.vue?3e02","webpack:///projects/clusters_deprecation_alert/components/clusters_deprecation_alert.vue","webpack:///./projects/clusters_deprecation_alert/components/clusters_deprecation_alert.vue?9ce8","webpack:///./projects/clusters_deprecation_alert/components/clusters_deprecation_alert.vue","webpack:///./projects/terraform_notification/constants.js","webpack:///projects/terraform_notification/components/terraform_notification.vue","webpack:///./projects/terraform_notification/components/terraform_notification.vue?16de","webpack:///./projects/terraform_notification/components/terraform_notification.vue?70f4","webpack:///./projects/terraform_notification/components/terraform_notification.vue","webpack:///./projects/terraform_notification/index.js","webpack:///projects/details/upload_button.vue","webpack:///./projects/details/upload_button.vue?4963","webpack:///./projects/details/upload_button.vue?de11","webpack:///./projects/details/upload_button.vue","webpack:///./pages/projects/show/empty_project.js","webpack:///./pages/projects/show/index.js","webpack:///./projects/upload_file.js","webpack:///./projects/clusters_deprecation_alert/index.js","webpack:////build/source/ee/app/assets/javascripts/pages/projects/show/components/compliance_info.vue?d3cf","webpack:///../../../ee/app/assets/javascripts/pages/projects/show/components/compliance_info.vue","webpack:////build/source/ee/app/assets/javascripts/pages/projects/show/components/compliance_info.vue?cc46","webpack:////build/source/ee/app/assets/javascripts/pages/projects/show/components/compliance_info.vue","webpack:////build/source/ee/app/assets/javascripts/pages/projects/show/index.js"],"names":["__vue_script__","name","components","CloseButton","GlButton","GlCard","props","title","type","String","required","buttonAttributes","Object","default","buttonText","buttonLink","svgPath","variant","validator","value","includes","dismissLabel","computed","this","methods","$emit","__vue_component__","render","_vm","_h","$createElement","_c","_self","staticClass","class","isIntroducing","attrs","_e","_v","_s","_t","_b","on","primaryButtonClicked","handleClose","staticRenderFns","undefined","leaveByUrl","namespaceType","Error","getParameterByName","initRails","leaveLink","document","querySelector","click","createAlert","message","sprintf","__","doc","loc","source","definitionRefs","findOperation","i","definitions","length","element","forEach","def","refs","Set","collectFragmentReferences","node","kind","add","selectionSet","selections","selection","variableDefinitions","module","exports","operationName","newDoc","hasOwnProperty","opRefs","allRefs","newRefs","refName","size","prevRefs","has","childRef","op","push","oneQuery","ACTIVE_TAB_CLASSES","freeze","TAB_SHOWN_EVENT","HISTORY_TYPE_HASH","ALLOWED_HISTORY_TYPES","GlTabsBehavior","constructor","el","history","destroyFns","tabList","tabs","getTabs","activeTab","setAccessibilityAttrs","bindEvents","loadInitialTab","_this","setAttribute","tab","hasAttribute","_uniqueId","classList","contains","removeAttribute","closest","tabPanel","getPanelForTab","id","NO_SCROLL_TO_HASH_CLASS","_this2","bindEvent","event","preventDefault","activateTab","code","activatePreviousTab","activateNextTab","args","addEventListener","removeEventListener","CSS","escape","window","location","hash","currentTabIndex","indexOf","previousTab","focus","nextTab","Array","from","querySelectorAll","ariaControls","getAttribute","tabToActivate","remove","historyReplaceState","dispatchTabShown","activeTabPanel","CustomEvent","bubbles","detail","dispatchEvent","destroy","GlAlert","directives","SafeHtml","html","data","isDismissed","dismiss","_g","$attrs","$listeners","rawName","expression","getCookieExpirationPeriod","expirationPeriod","alertExpirationPeriod","Number","isNaN","mountVueAlert","innerHTML","dataset","dismissible","parseBoolean","dismissCookieName","dismissCookieExpire","Vue","createElement","DismissibleAlert","alertDismissed","setCookie","expires","map","initSourceCodeDropdowns","index","downloadLinks","downloadArtifacts","cssClass","provide","SourceCodeDownloadDropdown","JSON","parse","GlIcon","GlLink","GlTooltip","backgroundColor","test","description","tooltipPlacement","target","scoped","Boolean","showCloseButton","disabled","splitScopedLabelIndex","lastIndexOf","textColorVariant","dark","light","slice","$refs","labelTitle","$el","watch","e","cssClasses","style","onClick","labelComponent","ref","tag","scopedKey","scopedValue","onClose","tooltipTarget","GlPopover","mixins","Tracking","mixin","label","inject","popoverId","tier","copyText","groupCopyStart","projectCopyStart","copyEnd","$options","i18n","copyStart","isProject","trackPrimaryCta","track","trackSecondaryCta","s__","primaryCtaText","secondaryCtaText","primaryCtaLink","secondaryCtaLink","GlBadge","TierBadgePopover","mounted","trackRender","trackHover","popoverTriggerId","initTierBadgeTrigger","TierBadge","INPUT_DEBOUNCE","CUSTODY_REPORT_PARAMETER","DRAWER_AVATAR_SIZE","DRAWER_MAXIMUM_AVATARS","GRAPHQL_PAGE_SIZE","GRAPHQL_FRAMEWORK_TYPE","MERGE_REQUEST_VIOLATION_MESSAGES","DEFAULT_SORT","DEFAULT_PAGINATION_CURSORS","before","after","first","ROUTE_STANDARDS_ADHERENCE","ROUTE_VIOLATIONS","ROUTE_PROJECTS","ROUTE_FRAMEWORKS","ROUTE_NEW_FRAMEWORK","ROUTE_NEW_FRAMEWORK_SUCCESS","ROUTE_EDIT_FRAMEWORK","FRAMEWORKS_LABEL_BACKGROUND","FRAMEWORKS_FILTER_TYPE_PROJECT","FRAMEWORKS_FILTER_TYPE_FRAMEWORK","FRAMEWORKS_FILTER_TYPE_GROUP","FRAMEWORKS_FILTER_VALUE_NO_FRAMEWORK","color","pipelineConfigurationFullPath","__typename","newFramework","newFrameworkButtonMessage","frameworksTab","projectsTab","heading","standardsAdherenceTab","subheading","violationsTab","POLICY_SCOPES_DOCS_URL","DOCS_URL_IN_EE_DIR","CREATE_FRAMEWORKS_DOCS_URL","FEEDBACK_ISSUE_URL","GRAPHQL_FIELD_MISSING_ERROR_MESSAGE","GlLabel","framework","showDefault","showPopover","closeable","showEdit","viewDetailsUrl","showDefaultBadge","frameworkName","_this$framework","substring","frameworkTestId","frameworkId","getIdFromGraphQLId","editFromPopover","$router","params","viewFrameworkDetails","visitUrl","query","edit","viewDetails","component","$event","GlSprintf","docsLink","helpPagePath","deprecationEpic","scopedSlots","_u","key","fn","content","trackingMixin","GlBanner","UserCalloutDismisser","docsUrl","calloutDismisser","buttonClick","shouldShowCallout","terraformImagePath","use","VueApollo","apolloProvider","defaultClient","createDefaultClient","UploadBlobModal","GlModal","GlModalDirective","targetBranch","originalBranch","canPushCode","canPushToBranch","path","projectPath","emptyRepo","uploadBlobModalId","EmptyProject","configureGitTabsEl","emptyProjectTabsEl","getElementById","then","initTree","catch","BlobViewer","initHeaderApp","isReadmeView","Activities","addShortcutsExtension","ShortcutsNavigation","uploadFileTriggerEl","router","createRouter","h","UploadButton","initUploadFileTrigger","ClustersDeprecationAlert","initClustersDeprecationAlert","TerraformNotification","initTerraformNotification","initReadMore","initAmbiguousRefModal","initHomePanel","UserCallout","setCalloutPerProject","className","codeDropdownEl","sshUrl","httpUrl","kerberosUrl","CodeDropdown","initCodeDropdown","initFindFileShortcut","initWebIdeLink","FrameworkBadge","complianceCenterPath","apollo","project","projectsComplianceFrameworks","variables","fullPath","update","_data$project","complianceFrameworks","nodes","error","Sentry","hasComplianceFrameworks","getViewDetailsUrl","joinPaths","gon","gitlab_url","_l","initVueAlerts","complianceInfoEl","ComplianceInfo","initComplianceInfo"],"mappings":"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","file":"pages.projects.show.713a0363.chunk.js","sourcesContent":["import { bannerVariants } from '../../../utils/constants';\nimport { translate } from '../../../utils/i18n';\nimport CloseButton from '../../shared_components/close_button/close_button';\nimport GlButton from '../button/button';\nimport GlCard from '../card/card';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlBanner',\n components: {\n CloseButton,\n GlButton,\n GlCard\n },\n props: {\n /**\n * Used to set the title of the banner.\n */\n title: {\n type: String,\n required: true\n },\n /**\n * HTML attributes to add to the submit button.\n */\n buttonAttributes: {\n type: Object,\n required: false,\n default: () => ({})\n },\n /**\n * Text for the submit button.\n */\n buttonText: {\n type: String,\n required: true\n },\n /**\n * Link for the submit button.\n */\n buttonLink: {\n type: String,\n required: false,\n default: null\n },\n /**\n * The illustration's URL.\n */\n svgPath: {\n type: String,\n required: false,\n default: null\n },\n /**\n * The variant of the banner.\n */\n variant: {\n type: String,\n required: false,\n default: bannerVariants[0],\n validator(value) {\n return bannerVariants.includes(value);\n }\n },\n /**\n * The close button's label, it is used for the button's aria-label attribute.\n */\n dismissLabel: {\n type: String,\n required: false,\n default: () => translate('GlBanner.closeButtonTitle', 'Dismiss')\n }\n },\n computed: {\n isIntroducing() {\n return this.variant === bannerVariants[1];\n }\n },\n methods: {\n handleClose() {\n /**\n * Emitted when the close button is clicked.\n *\n * @event close\n * @type {object}\n */\n this.$emit('close');\n },\n primaryButtonClicked() {\n /**\n * Emitted when the primary action button is clicked.\n *\n * @event primary\n * @type {object}\n */\n this.$emit('primary');\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-card',{staticClass:\"gl-banner gl-py-6 gl-pl-6 gl-pr-8\",class:{\n 'gl-banner-introduction': _vm.isIntroducing,\n },attrs:{\"body-class\":\"gl-flex !gl-p-0\"}},[(_vm.svgPath)?_c('div',{staticClass:\"gl-banner-illustration\"},[_c('img',{attrs:{\"src\":_vm.svgPath,\"alt\":\"\"}})]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"gl-banner-content\"},[_c('h2',{staticClass:\"gl-banner-title\"},[_vm._v(_vm._s(_vm.title))]),_vm._v(\" \"),_vm._t(\"default\"),_vm._v(\" \"),_c('gl-button',_vm._b({attrs:{\"variant\":\"confirm\",\"category\":\"primary\",\"data-testid\":\"gl-banner-primary-button\",\"href\":_vm.buttonLink},on:{\"click\":_vm.primaryButtonClicked}},'gl-button',_vm.buttonAttributes,false),[_vm._v(_vm._s(_vm.buttonText))]),_vm._v(\" \"),_vm._t(\"actions\")],2),_vm._v(\" \"),_c('close-button',{staticClass:\"gl-banner-close\",attrs:{\"label\":_vm.dismissLabel},on:{\"click\":_vm.handleClose}})],1)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","import { createAlert } from '~/alert';\nimport { initRails } from '~/lib/utils/rails_ujs';\nimport { getParameterByName } from '~/lib/utils/url_utility';\nimport { __, sprintf } from '~/locale';\n\nconst PARAMETER_NAME = 'leave';\nconst LEAVE_LINK_SELECTOR = '.js-leave-link';\n\nexport default function leaveByUrl(namespaceType) {\n if (!namespaceType) throw new Error('namespaceType not provided');\n\n const param = getParameterByName(PARAMETER_NAME);\n if (!param) return;\n\n initRails();\n\n const leaveLink = document.querySelector(LEAVE_LINK_SELECTOR);\n if (leaveLink) {\n leaveLink.click();\n } else {\n createAlert({\n message: sprintf(__('You do not have permission to leave this %{namespaceType}.'), {\n namespaceType,\n }),\n });\n }\n}\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"projectComplianceFrameworks\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"complianceFrameworks\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"color\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"default\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":227}};\n doc.loc.source = {\"body\":\"query projectComplianceFrameworks($fullPath: ID!) {\\n project(fullPath: $fullPath) {\\n id\\n complianceFrameworks {\\n nodes {\\n id\\n name\\n description\\n color\\n default\\n }\\n }\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"projectComplianceFrameworks\"] = oneQuery(doc, \"projectComplianceFrameworks\");\n \n","export const ACTIVE_TAB_CLASSES = Object.freeze(['active', 'gl-tab-nav-item-active']);\n\nexport const ACTIVE_PANEL_CLASS = 'active';\n\nexport const KEY_CODE_LEFT = 'ArrowLeft';\nexport const KEY_CODE_UP = 'ArrowUp';\nexport const KEY_CODE_RIGHT = 'ArrowRight';\nexport const KEY_CODE_DOWN = 'ArrowDown';\n\nexport const ATTR_ARIA_CONTROLS = 'aria-controls';\nexport const ATTR_ARIA_LABELLEDBY = 'aria-labelledby';\nexport const ATTR_ARIA_SELECTED = 'aria-selected';\nexport const ATTR_ROLE = 'role';\nexport const ATTR_TABINDEX = 'tabindex';\n\nexport const TAB_SHOWN_EVENT = 'gl-tab-shown';\n\nexport const HISTORY_TYPE_HASH = 'hash';\nexport const ALLOWED_HISTORY_TYPES = [HISTORY_TYPE_HASH];\n","import { uniqueId } from 'lodash';\nimport { historyReplaceState, NO_SCROLL_TO_HASH_CLASS } from '~/lib/utils/common_utils';\nimport {\n ACTIVE_TAB_CLASSES,\n ATTR_ROLE,\n ATTR_ARIA_CONTROLS,\n ATTR_TABINDEX,\n ATTR_ARIA_SELECTED,\n ATTR_ARIA_LABELLEDBY,\n ACTIVE_PANEL_CLASS,\n KEY_CODE_LEFT,\n KEY_CODE_UP,\n KEY_CODE_RIGHT,\n KEY_CODE_DOWN,\n TAB_SHOWN_EVENT,\n HISTORY_TYPE_HASH,\n ALLOWED_HISTORY_TYPES,\n} from './constants';\n\nexport { TAB_SHOWN_EVENT, HISTORY_TYPE_HASH };\n\n/**\n * The `GlTabsBehavior` class adds interactivity to tabs created by the `gl_tabs_nav` and\n * `gl_tab_link_to` Rails helpers.\n *\n * Example using `href` references:\n *\n * ```haml\n * = gl_tabs_nav({ class: 'js-my-tabs' }) do\n * = gl_tab_link_to '#foo', item_active: true do\n * = _('Foo')\n * = gl_tab_link_to '#bar' do\n * = _('Bar')\n *\n * .tab-content\n * .tab-pane.active#foo\n * .tab-pane#bar\n * ```\n *\n * ```javascript\n * import { GlTabsBehavior } from '~/tabs';\n *\n * const glTabs = new GlTabsBehavior(document.querySelector('.js-my-tabs'));\n * ```\n *\n * Example using `aria-controls` references:\n *\n * ```haml\n * = gl_tabs_nav({ class: 'js-my-tabs' }) do\n * = gl_tab_link_to '#', item_active: true, 'aria-controls': 'foo' do\n * = _('Foo')\n * = gl_tab_link_to '#', 'aria-controls': 'bar' do\n * = _('Bar')\n *\n * .tab-content\n * .tab-pane.active#foo\n * .tab-pane#bar\n * ```\n *\n * ```javascript\n * import { GlTabsBehavior } from '~/tabs';\n *\n * const glTabs = new GlTabsBehavior(document.querySelector('.js-my-tabs'));\n * ```\n *\n * `GlTabsBehavior` can be used to replace Bootstrap tab implementations that cannot\n * easily be rewritten in Vue.\n *\n * NOTE: Do *not* use `GlTabsBehavior` with markup generated by other means, as it may not\n * work correctly.\n *\n * Tab panels must exist somewhere in the page for the tabs to control. Tab panels\n * must:\n * - be immediate children of a `.tab-content` element\n * - have the `tab-pane` class\n * - if the panel is active, have the `active` class\n * - have a unique `id` attribute\n *\n * In order to associate tabs with panels, the tabs must reference their panel's\n * `id` by having one of the following attributes:\n * - `href`, e.g., `href=\"#the-panel-id\"` (note the leading `#` in the value)\n * - `aria-controls`, e.g., `aria-controls=\"the-panel-id\"` (no leading `#`)\n *\n * Exactly one tab/panel must be active in the original markup.\n *\n * Call the `destroy` method on an instance to remove event listeners that were\n * added during construction. Other DOM mutations (like ARIA attributes) are\n * _not_ reverted.\n */\nexport class GlTabsBehavior {\n /**\n * Create a GlTabsBehavior instance.\n *\n * @param {HTMLElement} el - The element created by the Rails `gl_tabs_nav` helper.\n * @param {Object} [options]\n * @param {'hash' | null} [options.history=null] - Sets the type of routing GlTabs will use when navigating between tabs.\n * 'hash': Updates the URL hash with the current tab ID.\n * null: No routing mechanism will be used.\n */\n constructor(el, { history = null } = {}) {\n if (!el) {\n throw new Error('Cannot instantiate GlTabsBehavior without an element');\n }\n\n this.destroyFns = [];\n this.tabList = el;\n this.tabs = this.getTabs();\n this.activeTab = null;\n\n this.history = ALLOWED_HISTORY_TYPES.includes(history) ? history : null;\n\n this.setAccessibilityAttrs();\n this.bindEvents();\n if (this.history === HISTORY_TYPE_HASH) this.loadInitialTab();\n }\n\n setAccessibilityAttrs() {\n this.tabList.setAttribute(ATTR_ROLE, 'tablist');\n this.tabs.forEach((tab) => {\n if (!tab.hasAttribute('id')) {\n tab.setAttribute('id', uniqueId('gl_tab_nav__tab_'));\n }\n\n if (!this.activeTab && tab.classList.contains(ACTIVE_TAB_CLASSES[0])) {\n this.activeTab = tab;\n tab.setAttribute(ATTR_ARIA_SELECTED, 'true');\n tab.removeAttribute(ATTR_TABINDEX);\n } else {\n tab.setAttribute(ATTR_ARIA_SELECTED, 'false');\n tab.setAttribute(ATTR_TABINDEX, '-1');\n }\n\n tab.setAttribute(ATTR_ROLE, 'tab');\n tab.closest('.nav-item').setAttribute(ATTR_ROLE, 'presentation');\n\n const tabPanel = this.getPanelForTab(tab);\n if (!tab.hasAttribute(ATTR_ARIA_CONTROLS)) {\n tab.setAttribute(ATTR_ARIA_CONTROLS, tabPanel.id);\n }\n\n tabPanel.classList.add(NO_SCROLL_TO_HASH_CLASS);\n tabPanel.setAttribute(ATTR_ROLE, 'tabpanel');\n tabPanel.setAttribute(ATTR_ARIA_LABELLEDBY, tab.id);\n });\n }\n\n bindEvents() {\n this.tabs.forEach((tab) => {\n this.bindEvent(tab, 'click', (event) => {\n event.preventDefault();\n\n if (tab !== this.activeTab) {\n this.activateTab(tab);\n }\n });\n\n this.bindEvent(tab, 'keydown', (event) => {\n const { code } = event;\n if (code === KEY_CODE_UP || code === KEY_CODE_LEFT) {\n event.preventDefault();\n this.activatePreviousTab();\n } else if (code === KEY_CODE_DOWN || code === KEY_CODE_RIGHT) {\n event.preventDefault();\n this.activateNextTab();\n }\n });\n });\n }\n\n bindEvent(el, ...args) {\n el.addEventListener(...args);\n\n this.destroyFns.push(() => {\n el.removeEventListener(...args);\n });\n }\n\n loadInitialTab() {\n const tab = this.tabList.querySelector(`a[href=\"${CSS.escape(window.location.hash)}\"]`);\n this.activateTab(tab || this.activeTab);\n }\n\n activatePreviousTab() {\n const currentTabIndex = this.tabs.indexOf(this.activeTab);\n\n if (currentTabIndex <= 0) return;\n\n const previousTab = this.tabs[currentTabIndex - 1];\n this.activateTab(previousTab);\n previousTab.focus();\n }\n\n activateNextTab() {\n const currentTabIndex = this.tabs.indexOf(this.activeTab);\n\n if (currentTabIndex >= this.tabs.length - 1) return;\n\n const nextTab = this.tabs[currentTabIndex + 1];\n this.activateTab(nextTab);\n nextTab.focus();\n }\n\n getTabs() {\n return Array.from(this.tabList.querySelectorAll('.gl-tab-nav-item'));\n }\n\n // eslint-disable-next-line class-methods-use-this\n getPanelForTab(tab) {\n const ariaControls = tab.getAttribute(ATTR_ARIA_CONTROLS);\n\n if (ariaControls) {\n return document.querySelector(`#${ariaControls}`);\n }\n\n return document.querySelector(tab.getAttribute('href'));\n }\n\n activateTab(tabToActivate) {\n // Deactivate active tab first\n this.activeTab.setAttribute(ATTR_ARIA_SELECTED, 'false');\n this.activeTab.setAttribute(ATTR_TABINDEX, '-1');\n this.activeTab.classList.remove(...ACTIVE_TAB_CLASSES);\n\n const activePanel = this.getPanelForTab(this.activeTab);\n activePanel.classList.remove(ACTIVE_PANEL_CLASS);\n\n // Now activate the given tab/panel\n tabToActivate.setAttribute(ATTR_ARIA_SELECTED, 'true');\n tabToActivate.removeAttribute(ATTR_TABINDEX);\n tabToActivate.classList.add(...ACTIVE_TAB_CLASSES);\n\n const tabPanel = this.getPanelForTab(tabToActivate);\n tabPanel.classList.add(ACTIVE_PANEL_CLASS);\n\n if (this.history === HISTORY_TYPE_HASH) historyReplaceState(tabToActivate.getAttribute('href'));\n this.activeTab = tabToActivate;\n\n this.dispatchTabShown(tabToActivate, tabPanel);\n }\n\n // eslint-disable-next-line class-methods-use-this\n dispatchTabShown(tab, activeTabPanel) {\n const event = new CustomEvent(TAB_SHOWN_EVENT, {\n bubbles: true,\n detail: {\n activeTabPanel,\n },\n });\n\n tab.dispatchEvent(event);\n }\n\n destroy() {\n this.destroyFns.forEach((destroy) => destroy());\n }\n}\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dismissible_alert.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./dismissible_alert.vue?vue&type=script&lang=js\"","\n\n\n \n \n \n\n","import { render, staticRenderFns } from \"./dismissible_alert.vue?vue&type=template&id=5ace45cc\"\nimport script from \"./dismissible_alert.vue?vue&type=script&lang=js\"\nexport * from \"./dismissible_alert.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.isDismissed)?_c('gl-alert',_vm._g(_vm._b({on:{\"dismiss\":_vm.dismiss}},'gl-alert',_vm.$attrs,false),_vm.$listeners),[_c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.html),expression:\"html\"}]})]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport { setCookie, parseBoolean } from '~/lib/utils/common_utils';\n\nimport DismissibleAlert from '~/vue_shared/components/dismissible_alert.vue';\n\nconst getCookieExpirationPeriod = (expirationPeriod) => {\n const defaultExpirationPeriod = 30;\n const alertExpirationPeriod = Number(expirationPeriod);\n\n return !expirationPeriod || Number.isNaN(alertExpirationPeriod)\n ? defaultExpirationPeriod\n : alertExpirationPeriod;\n};\n\nconst mountVueAlert = (el) => {\n const props = {\n html: el.innerHTML,\n };\n const attrs = {\n ...el.dataset,\n dismissible: parseBoolean(el.dataset.dismissible),\n };\n const { dismissCookieName, dismissCookieExpire } = el.dataset;\n\n return new Vue({\n el,\n render(createElement) {\n return createElement(DismissibleAlert, {\n props,\n attrs,\n on: {\n alertDismissed() {\n if (!dismissCookieName) {\n return;\n }\n setCookie(dismissCookieName, true, {\n expires: getCookieExpirationPeriod(dismissCookieExpire),\n });\n },\n },\n });\n },\n });\n};\n\nexport default () => [...document.querySelectorAll('.js-vue-alert')].map(mountVueAlert);\n","import Vue from 'vue';\nimport SourceCodeDownloadDropdown from '~/vue_shared/components/download_dropdown/download_dropdown.vue';\n\nexport default function initSourceCodeDropdowns() {\n const dropdowns = document.querySelectorAll('.js-source-code-dropdown');\n\n return dropdowns.forEach((el, index) => {\n const { downloadLinks, downloadArtifacts, cssClass } = el.dataset;\n\n return new Vue({\n el,\n name: `SourceCodeDropdown${index + 1}`,\n provide: {\n downloadLinks,\n downloadArtifacts,\n cssClass,\n },\n render(createElement) {\n return createElement(SourceCodeDownloadDropdown, {\n props: {\n downloadLinks: JSON.parse(downloadLinks) || [],\n downloadArtifacts: JSON.parse(downloadArtifacts) || [],\n cssClass,\n },\n });\n },\n });\n });\n}\n","import { labelColorOptions } from '../../../utils/constants';\nimport { colorFromBackground } from '../../../utils/utils';\nimport GlButton from '../button/button';\nimport GlIcon from '../icon/icon';\nimport GlLink from '../link/link';\nimport GlTooltip from '../tooltip/tooltip';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nvar script = {\n name: 'GlLabel',\n components: {\n GlButton,\n GlIcon,\n GlLink,\n GlTooltip\n },\n props: {\n backgroundColor: {\n type: String,\n required: true,\n validator: value => /^(#|rgb|rgba)/.test(value)\n },\n title: {\n type: String,\n required: true,\n default: ''\n },\n description: {\n type: String,\n required: false,\n default: ''\n },\n tooltipPlacement: {\n type: String,\n required: false,\n default: 'top'\n },\n target: {\n type: String,\n required: false,\n default: ''\n },\n scoped: {\n type: Boolean,\n required: false,\n default: false\n },\n showCloseButton: {\n type: Boolean,\n required: false,\n default: false\n },\n disabled: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n data() {\n return {\n splitScopedLabelIndex: this.title.lastIndexOf('::')\n };\n },\n computed: {\n cssClasses() {\n const textColorVariant = colorFromBackground(this.backgroundColor);\n return {\n 'gl-label-scoped': this.scoped,\n 'gl-label-text-dark': textColorVariant === labelColorOptions.dark,\n 'gl-label-text-light': textColorVariant === labelColorOptions.light\n };\n },\n cssVariables() {\n return {\n '--label-background-color': this.backgroundColor,\n '--label-inset-border': `inset 0 0 0 2px ${this.backgroundColor}`\n };\n },\n scopedKey() {\n return this.scoped ? this.title.slice(0, this.splitScopedLabelIndex) : this.title;\n },\n scopedValue() {\n return this.title.slice(this.splitScopedLabelIndex + 2);\n },\n labelComponent() {\n return this.target ? GlLink : 'span';\n },\n tooltipTarget() {\n return this.target ? this.$refs.labelTitle.$el : this.$refs.labelTitle;\n }\n },\n watch: {\n title() {\n this.splitScopedLabelIndex = this.title.lastIndexOf('::');\n }\n },\n methods: {\n onClick(e) {\n /**\n * Emitted when label is clicked\n *\n * @event click\n * @type {object}\n */\n this.$emit('click', e);\n },\n onClose(e) {\n /**\n * Emitted when x is clicked\n *\n * @event close\n * @type {object}\n */\n this.$emit('close', e);\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',_vm._b({staticClass:\"gl-label\",class:_vm.cssClasses,style:(_vm.cssVariables),on:{\"click\":_vm.onClick}},'span',_vm.$attrs,false),[_c(_vm.labelComponent,{ref:\"labelTitle\",tag:\"component\",staticClass:\"gl-label-link\",class:{ 'gl-label-link-underline': _vm.target },attrs:{\"href\":_vm.target ? _vm.target : false,\"tabindex\":\"0\"}},[_c('span',{staticClass:\"gl-label-text\"},[_vm._v(\"\\n \"+_vm._s(_vm.scopedKey)+\"\\n \")]),_vm._v(\" \"),(_vm.scoped && _vm.scopedValue)?_c('span',{staticClass:\"gl-label-text-scoped\"},[_vm._v(\"\\n \"+_vm._s(_vm.scopedValue)+\"\\n \")]):_vm._e()]),_vm._v(\" \"),(_vm.showCloseButton)?_c('gl-button',{staticClass:\"gl-label-close !gl-p-0\",attrs:{\"category\":\"tertiary\",\"size\":\"small\",\"variant\":\"reset\",\"aria-label\":\"Remove label\",\"disabled\":_vm.disabled},on:{\"click\":_vm.onClose}},[_c('gl-icon',{attrs:{\"name\":\"close-xs\",\"size\":12}})],1):_vm._e(),_vm._v(\" \"),(_vm.description)?_c('gl-tooltip',{attrs:{\"target\":function () { return _vm.tooltipTarget; },\"placement\":_vm.tooltipPlacement,\"boundary\":\"viewport\"}},[(_vm.scoped)?_c('span',{staticClass:\"gl-label-tooltip-title\"},[_vm._v(\"Scoped label\")]):_vm._e(),_vm._v(\"\\n \"+_vm._s(_vm.description)+\"\\n \")]):_vm._e()],1)};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./tier_badge_popover.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./tier_badge_popover.vue?vue&type=script&lang=js\"","\n\n\n \n \n {{ copyText }}\n \n\n {{ $options.i18n.primaryCtaText }}\n {{ $options.i18n.secondaryCtaText }}\n \n\n","import { render, staticRenderFns } from \"./tier_badge_popover.vue?vue&type=template&id=1733eee8\"\nimport script from \"./tier_badge_popover.vue?vue&type=script&lang=js\"\nexport * from \"./tier_badge_popover.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-popover',{attrs:{\"title\":_vm.$options.i18n.title,\"target\":_vm.popoverId,\"placement\":\"bottom\"}},[_c('div',{staticClass:\"gl-mb-3\"},[_vm._v(\"\\n \"+_vm._s(_vm.copyText)+\"\\n \")]),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-my-2 gl-w-full\",attrs:{\"href\":_vm.primaryCtaLink,\"variant\":\"confirm\",\"data-testid\":\"tier-badge-popover-primary-cta\"},on:{\"click\":_vm.trackPrimaryCta}},[_vm._v(_vm._s(_vm.$options.i18n.primaryCtaText))]),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-my-2 gl-w-full\",attrs:{\"href\":_vm.secondaryCtaLink,\"variant\":\"confirm\",\"category\":\"secondary\",\"data-testid\":\"tier-badge-popover-secondary-cta\"},on:{\"click\":_vm.trackSecondaryCta}},[_vm._v(_vm._s(_vm.$options.i18n.secondaryCtaText))])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./tier_badge.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./tier_badge.vue?vue&type=script&lang=js\"","\n\n \n \n {{ tier }}\n \n \n \n\n","import { render, staticRenderFns } from \"./tier_badge.vue?vue&type=template&id=54ad9e6c\"\nimport script from \"./tier_badge.vue?vue&type=script&lang=js\"\nexport * from \"./tier_badge.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:\"gl-ml-2 gl-flex gl-items-center\",on:{\"mouseover\":_vm.trackHover}},[_c('gl-badge',{attrs:{\"id\":_vm.$options.popoverTriggerId,\"data-testid\":\"tier-badge\",\"variant\":\"tier\"}},[_vm._v(\"\\n \"+_vm._s(_vm.tier)+\"\\n \")]),_vm._v(\" \"),_c('tier-badge-popover',{attrs:{\"popover-id\":_vm.$options.popoverTriggerId,\"triggers\":\"hover focus manual\",\"tier\":_vm.tier}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport TierBadge from 'ee/vue_shared/components/tier_badge/tier_badge.vue';\nimport { parseBoolean } from '~/lib/utils/common_utils';\n\nexport default function initTierBadgeTrigger() {\n const el = document.querySelector('.js-tier-badge-trigger');\n\n if (!el) {\n return false;\n }\n\n const { primaryCtaLink, secondaryCtaLink, isProject } = el.dataset;\n\n return new Vue({\n el,\n name: 'TierBadgeTriggerRoot',\n components: {\n TierBadge,\n },\n provide: {\n primaryCtaLink,\n secondaryCtaLink,\n isProject: parseBoolean(isProject),\n },\n render(createElement) {\n return createElement(TierBadge);\n },\n });\n}\n","import { __, s__ } from '~/locale';\nimport { DOCS_URL_IN_EE_DIR } from 'jh_else_ce/lib/utils/url_utility';\n\nexport const INPUT_DEBOUNCE = 500;\n\nexport const CUSTODY_REPORT_PARAMETER = 'commit_sha';\n\nexport const DRAWER_AVATAR_SIZE = 24;\n\nexport const DRAWER_MAXIMUM_AVATARS = 20;\n\nexport const GRAPHQL_PAGE_SIZE = 20;\n\nexport const GRAPHQL_FRAMEWORK_TYPE = 'ComplianceManagement::Framework';\n\nconst APPROVED_BY_COMMITTER = 'APPROVED_BY_COMMITTER';\nconst APPROVED_BY_INSUFFICIENT_USERS = 'APPROVED_BY_INSUFFICIENT_USERS';\nconst APPROVED_BY_MERGE_REQUEST_AUTHOR = 'APPROVED_BY_MERGE_REQUEST_AUTHOR';\n\nexport const MERGE_REQUEST_VIOLATION_MESSAGES = {\n [APPROVED_BY_COMMITTER]: s__('ComplianceReport|Approved by committer'),\n [APPROVED_BY_INSUFFICIENT_USERS]: s__('ComplianceReport|Less than 2 approvers'),\n [APPROVED_BY_MERGE_REQUEST_AUTHOR]: s__('ComplianceReport|Approved by author'),\n};\n\nexport const DEFAULT_SORT = 'SEVERITY_LEVEL_DESC';\n\nexport const DEFAULT_PAGINATION_CURSORS = {\n before: null,\n after: null,\n first: GRAPHQL_PAGE_SIZE,\n};\n\nexport const BRANCH_FILTER_OPTIONS = {\n allBranches: __('All branches'),\n allProtectedBranches: __('All protected branches'),\n};\n\nexport const ROUTE_STANDARDS_ADHERENCE = 'standards_adherence';\nexport const ROUTE_VIOLATIONS = 'violations';\nexport const ROUTE_PROJECTS = 'projects';\nexport const ROUTE_FRAMEWORKS = 'frameworks';\nexport const ROUTE_NEW_FRAMEWORK = 'new_framework';\nexport const ROUTE_NEW_FRAMEWORK_SUCCESS = 'new_framework_success';\nexport const ROUTE_EDIT_FRAMEWORK = 'frameworks/:id';\nexport const FRAMEWORKS_LABEL_BACKGROUND = '#737278';\n\nexport const FRAMEWORKS_FILTER_TYPE_PROJECT = 'project';\nexport const FRAMEWORKS_FILTER_TYPE_FRAMEWORK = 'framework';\nexport const FRAMEWORKS_FILTER_TYPE_GROUP = 'group';\nexport const FRAMEWORKS_FILTER_VALUE_NO_FRAMEWORK = {\n color: '#000000',\n default: false,\n description: s__('ComplianceFrameworks|No framework'),\n id: 'gid://gitlab/ComplianceManagement::Framework/0',\n name: s__('ComplianceFrameworks|No framework'),\n pipelineConfigurationFullPath: '',\n __typename: 'ComplianceFramework',\n};\n\nexport const i18n = {\n newFramework: s__('ComplianceFrameworks|New framework'),\n newFrameworkButtonMessage: s__(\n 'ComplianceFrameworks|You can only create the compliance framework in top-level group %{linkStart}namespace%{linkEnd}',\n ),\n frameworksTab: s__('Compliance Center|Frameworks'),\n projectsTab: __('Projects'),\n heading: __('Compliance center'),\n standardsAdherenceTab: s__('Compliance Center|Standards Adherence'),\n subheading: __(\n 'Report and manage standards adherence, violations, and compliance frameworks for the group.',\n ),\n violationsTab: s__('Compliance Center|Violations'),\n};\n\nexport const POLICY_SCOPES_DOCS_URL = `${DOCS_URL_IN_EE_DIR}/user/application_security/policies/index.html#scope`;\n\nexport const CREATE_FRAMEWORKS_DOCS_URL = `${DOCS_URL_IN_EE_DIR}/user/group/compliance_frameworks.html#prerequisites`;\n\nexport const FEEDBACK_ISSUE_URL = 'https://gitlab.com/gitlab-org/gitlab/-/issues/481586';\n\nexport const GRAPHQL_FIELD_MISSING_ERROR_MESSAGE = __(\n 'Your GitLab instance is currently being updated. Please try again later.',\n);\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"badge\"},[(_vm.showPopover)?_c('gl-popover',{ref:\"popover\",attrs:{\"title\":_vm.framework.name,\"target\":() => _vm.$refs.label}},[(_vm.framework.description)?_c('div',{staticClass:\"gl-mb-3 gl-text-left\"},[_vm._v(\"\\n \"+_vm._s(_vm.framework.description)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"gl-text-left\"},[(_vm.showEdit)?_c('gl-button',{staticClass:\"gl-text-sm\",attrs:{\"category\":\"secondary\",\"size\":\"small\",\"variant\":\"confirm\"},on:{\"click\":_vm.editFromPopover}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.edit)+\"\\n \")]):_c('gl-button',{staticClass:\"gl-text-sm\",attrs:{\"category\":\"secondary\",\"size\":\"small\",\"variant\":\"confirm\"},on:{\"click\":_vm.viewFrameworkDetails}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.viewDetails)+\"\\n \")])],1)]):_vm._e(),_vm._v(\" \"),_c('span',{ref:\"label\"},[_c('gl-label',{staticClass:\"md:gl-max-w-26\",attrs:{\"data-testid\":_vm.frameworkTestId,\"background-color\":_vm.framework.color,\"title\":_vm.frameworkName,\"show-close-button\":_vm.closeable},on:{\"close\":function($event){return _vm.$emit('close')}}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./framework_badge.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./framework_badge.vue?vue&type=script&lang=js\"","\n\n \n $refs.label\"\n >\n \n {{ framework.description }}\n \n \n \n {{ $options.i18n.edit }}\n \n \n {{ $options.i18n.viewDetails }}\n \n \n \n \n \n \n \n\n","import { render, staticRenderFns } from \"./framework_badge.vue?vue&type=template&id=526c0173\"\nimport script from \"./framework_badge.vue?vue&type=script&lang=js\"\nexport * from \"./framework_badge.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./clusters_deprecation_alert.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./clusters_deprecation_alert.vue?vue&type=script&lang=js\"","\n\n \n \n \n {{ content }}\n \n \n {{ content }}\n \n \n \n\n","import { render, staticRenderFns } from \"./clusters_deprecation_alert.vue?vue&type=template&id=0246067a\"\nimport script from \"./clusters_deprecation_alert.vue?vue&type=script&lang=js\"\nexport * from \"./clusters_deprecation_alert.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-alert',{staticClass:\"gl-mt-5\",attrs:{\"dismissible\":false,\"variant\":\"warning\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.message},scopedSlots:_vm._u([{key:\"link\",fn:function({ content }){return [_c('gl-link',{attrs:{\"href\":_vm.$options.docsLink}},[_vm._v(_vm._s(content))])]}},{key:\"deprecationLink\",fn:function({ content }){return [_c('gl-link',{attrs:{\"href\":_vm.$options.deprecationEpic}},[_vm._v(_vm._s(content))])]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export const EVENT_LABEL = 'terraform_banner';\nexport const DISMISS_EVENT = 'dismiss_banner';\nexport const CLICK_EVENT = 'click_button';\n","\n\n \n \n \n \n {{ $options.i18n.description }}\n \n \n \n \n\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./terraform_notification.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./terraform_notification.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./terraform_notification.vue?vue&type=template&id=2fbc0275\"\nimport script from \"./terraform_notification.vue?vue&type=script&lang=js\"\nexport * from \"./terraform_notification.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('user-callout-dismisser',{ref:\"calloutDismisser\",attrs:{\"feature-name\":\"terraform_notification_dismissed\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ shouldShowCallout }){return [(shouldShowCallout)?_c('div',{staticClass:\"gl-pt-5\"},[_c('gl-banner',{attrs:{\"title\":_vm.$options.i18n.title,\"button-text\":_vm.$options.i18n.buttonText,\"button-link\":_vm.docsUrl,\"svg-path\":_vm.terraformImagePath,\"variant\":\"promotion\"},on:{\"primary\":_vm.buttonClick,\"close\":_vm.handleClose}},[_c('p',[_vm._v(_vm._s(_vm.$options.i18n.description))])])],1):_vm._e()]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport VueApollo from 'vue-apollo';\nimport createDefaultClient from '~/lib/graphql';\nimport TerraformNotification from './components/terraform_notification.vue';\n\nVue.use(VueApollo);\n\nconst apolloProvider = new VueApollo({\n defaultClient: createDefaultClient(),\n});\n\nexport default () => {\n const el = document.querySelector('.js-terraform-notification');\n\n if (!el) {\n return false;\n }\n\n const { terraformImagePath } = el.dataset;\n\n return new Vue({\n el,\n apolloProvider,\n provide: {\n terraformImagePath,\n },\n render: (createElement) => createElement(TerraformNotification),\n });\n};\n","\n\n \n {{ __('Upload File') }}\n \n \n\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./upload_button.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./upload_button.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./upload_button.vue?vue&type=template&id=597512a8\"\nimport script from \"./upload_button.vue?vue&type=script&lang=js\"\nexport * from \"./upload_button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',[_c('gl-button',{directives:[{name:\"gl-modal\",rawName:\"v-gl-modal\",value:(_vm.$options.uploadBlobModalId),expression:\"$options.uploadBlobModalId\"}],staticClass:\"stat-link !gl-px-0\",attrs:{\"variant\":\"link\",\"icon\":\"upload\",\"button-text-classes\":\"gl-ml-2\",\"data-testid\":\"upload-file-button\"}},[_vm._v(_vm._s(_vm.__('Upload File')))]),_vm._v(\" \"),_c('upload-blob-modal',{attrs:{\"modal-id\":_vm.$options.uploadBlobModalId,\"commit-message\":_vm.__('Upload New File'),\"target-branch\":_vm.targetBranch,\"original-branch\":_vm.originalBranch,\"can-push-code\":_vm.canPushCode,\"can-push-to-branch\":_vm.canPushToBranch,\"path\":_vm.path,\"empty-repo\":_vm.emptyRepo}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { GlTabsBehavior, HISTORY_TYPE_HASH } from '~/tabs';\n\nexport default class EmptyProject {\n constructor() {\n this.configureGitTabsEl = document.querySelector('.js-configure-git-tabs');\n\n this.emptyProjectTabsEl = document.querySelector('.js-empty-project-tabs');\n\n // eslint-disable-next-line no-new\n new GlTabsBehavior(this.configureGitTabsEl, { history: HISTORY_TYPE_HASH });\n // eslint-disable-next-line no-new\n new GlTabsBehavior(this.emptyProjectTabsEl, { history: HISTORY_TYPE_HASH });\n }\n}\n","import Vue from 'vue';\nimport { addShortcutsExtension } from '~/behaviors/shortcuts';\nimport ShortcutsNavigation from '~/behaviors/shortcuts/shortcuts_navigation';\nimport { initFindFileShortcut } from '~/projects/behaviors';\nimport initClustersDeprecationAlert from '~/projects/clusters_deprecation_alert';\nimport leaveByUrl from '~/namespaces/leave_by_url';\nimport initTerraformNotification from '~/projects/terraform_notification';\nimport { initUploadFileTrigger } from '~/projects/upload_file';\nimport initReadMore from '~/read_more';\nimport initAmbiguousRefModal from '~/ref/init_ambiguous_ref_modal';\nimport CodeDropdown from '~/vue_shared/components/code_dropdown/code_dropdown.vue';\nimport initSourceCodeDropdowns from '~/vue_shared/components/download_dropdown/init_download_dropdowns';\nimport EmptyProject from '~/pages/projects/show/empty_project';\nimport initHeaderApp from '~/repository/init_header_app';\nimport initWebIdeLink from '~/pages/projects/shared/web_ide_link';\nimport { initHomePanel } from '../home_panel';\n\n// Project show page loads different overview content based on user preferences\nif (document.getElementById('js-tree-list')) {\n import(/* webpackChunkName: 'treeList' */ 'ee_else_ce/repository')\n .then(({ default: initTree }) => {\n initTree();\n })\n .catch(() => {});\n}\n\nif (document.querySelector('.blob-viewer')) {\n import(/* webpackChunkName: 'blobViewer' */ '~/blob/viewer')\n .then(({ BlobViewer }) => {\n new BlobViewer(); // eslint-disable-line no-new\n initHeaderApp({ isReadmeView: true });\n })\n .catch(() => {});\n}\n\nif (document.querySelector('.project-show-activity')) {\n import(/* webpackChunkName: 'activitiesList' */ '~/activities')\n .then(({ default: Activities }) => {\n new Activities(); // eslint-disable-line no-new\n })\n .catch(() => {});\n}\n\naddShortcutsExtension(ShortcutsNavigation);\n\ninitUploadFileTrigger();\ninitClustersDeprecationAlert();\ninitTerraformNotification();\ninitReadMore();\ninitAmbiguousRefModal();\ninitHomePanel();\n\nif (document.querySelector('.js-autodevops-banner')) {\n import(/* webpackChunkName: 'userCallOut' */ '~/user_callout')\n .then(({ default: UserCallout }) => {\n // eslint-disable-next-line no-new\n new UserCallout({\n setCalloutPerProject: false,\n className: 'js-autodevops-banner',\n });\n })\n .catch(() => {});\n}\n\nleaveByUrl('project');\n\nconst initCodeDropdown = () => {\n const codeDropdownEl = document.querySelector('#js-project-show-empty-page #js-code-dropdown');\n\n if (!codeDropdownEl) return false;\n\n const { sshUrl, httpUrl, kerberosUrl } = codeDropdownEl.dataset;\n\n return new Vue({\n el: codeDropdownEl,\n render(createElement) {\n return createElement(CodeDropdown, {\n props: {\n sshUrl,\n httpUrl,\n kerberosUrl,\n },\n });\n },\n });\n};\n\nconst initEmptyProjectTabs = () => {\n const emptyProjectEl = document.querySelector('#js-project-show-empty-page');\n\n if (!emptyProjectEl) return;\n\n new EmptyProject(); // eslint-disable-line no-new\n};\n\ninitCodeDropdown();\ninitSourceCodeDropdowns();\ninitFindFileShortcut();\ninitEmptyProjectTabs();\ninitWebIdeLink({ el: document.getElementById('js-tree-web-ide-link') });\n","import Vue from 'vue';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport createRouter from '~/repository/router';\nimport UploadButton from './details/upload_button.vue';\n\nexport const initUploadFileTrigger = () => {\n const uploadFileTriggerEl = document.querySelector('.js-upload-file-trigger');\n\n if (!uploadFileTriggerEl) return false;\n\n const { targetBranch, originalBranch, canPushCode, canPushToBranch, path, projectPath } =\n uploadFileTriggerEl.dataset;\n\n return new Vue({\n el: uploadFileTriggerEl,\n router: createRouter(projectPath, originalBranch),\n provide: {\n targetBranch,\n originalBranch,\n canPushCode: parseBoolean(canPushCode),\n canPushToBranch: parseBoolean(canPushToBranch),\n path,\n projectPath,\n emptyRepo: true,\n },\n render(h) {\n return h(UploadButton);\n },\n });\n};\n","import Vue from 'vue';\nimport ClustersDeprecationAlert from './components/clusters_deprecation_alert.vue';\n\nexport default () => {\n const el = document.querySelector('.js-clusters-deprecation-alert');\n\n if (!el) {\n return false;\n }\n\n const { message } = el.dataset;\n\n return new Vue({\n el,\n name: 'ClustersDeprecationAlertRoot',\n provide: {\n message,\n },\n render: (createElement) => createElement(ClustersDeprecationAlert),\n });\n};\n","import mod from \"-!../../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./compliance_info.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./compliance_info.vue?vue&type=script&lang=js\"","\n\n\n \n \n {{ s__('ComplianceFrameworks|Compliance frameworks applied') }}\n \n \n \n\n","import { render, staticRenderFns } from \"./compliance_info.vue?vue&type=template&id=7ec8ad01\"\nimport script from \"./compliance_info.vue?vue&type=script&lang=js\"\nexport * from \"./compliance_info.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.hasComplianceFrameworks)?_c('div',{staticClass:\"project-page-sidebar-block gl-border-b gl-border-subtle gl-py-4\"},[_c('h5',{staticClass:\"gl-heading-5 gl-mb-3\"},[_vm._v(\"\\n \"+_vm._s(_vm.s__('ComplianceFrameworks|Compliance frameworks applied'))+\"\\n \")]),_vm._v(\" \"),_vm._l((_vm.complianceFrameworks),function(framework,index){return _c('framework-badge',{key:framework.id,staticClass:\"gl-mb-2 gl-mr-2 gl-inline-block gl-cursor-pointer\",attrs:{\"show-edit\":false,\"framework\":framework,\"data-testid\":`framework-badge-${index}`,\"view-details-url\":_vm.getViewDetailsUrl(framework.id)}})})],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import '~/pages/projects/show/index';\nimport Vue from 'vue';\nimport VueApollo from 'vue-apollo';\nimport initVueAlerts from '~/vue_alerts';\nimport initTierBadgeTrigger from 'ee/groups/init_tier_badge_trigger';\nimport createDefaultClient from '~/lib/graphql';\nimport ComplianceInfo from './components/compliance_info.vue';\n\nconst apolloProvider = new VueApollo({\n defaultClient: createDefaultClient(),\n});\n\nconst initComplianceInfo = () => {\n const complianceInfoEl = document.getElementById('js-compliance-info');\n if (!complianceInfoEl) return false;\n const { projectPath, complianceCenterPath } = complianceInfoEl.dataset;\n return new Vue({\n el: complianceInfoEl,\n apolloProvider,\n render(h) {\n return h(ComplianceInfo, {\n props: {\n projectPath,\n complianceCenterPath,\n },\n });\n },\n });\n};\n\ninitVueAlerts();\ninitTierBadgeTrigger();\ninitComplianceInfo();\n"],"sourceRoot":""}
{{ $options.i18n.description }}