{"version":3,"sources":["webpack:////build/source/ee/app/assets/javascripts/graphql_shared/fragments/merge_request.approval_rule.fragment.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/popover/helpers/bv-popover-template.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/popover/helpers/bv-popover.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/popover/popover.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/popover/popover.js","webpack:////build/source/ee/app/assets/javascripts/merge_requests/components/reviewers/approval_rules_wrapper.vue","webpack:////build/source/ee/app/assets/javascripts/merge_requests/components/reviewers/approval_rules.vue?916e","webpack:///../../../ee/app/assets/javascripts/merge_requests/components/reviewers/approval_rules.vue","webpack:////build/source/ee/app/assets/javascripts/merge_requests/components/reviewers/approval_rules.vue?7abb","webpack:////build/source/ee/app/assets/javascripts/merge_requests/components/reviewers/approval_rules.vue","webpack:////build/source/ee/app/assets/javascripts/merge_requests/components/reviewers/approval_rules_wrapper.vue?7fc5","webpack:///../../../ee/app/assets/javascripts/merge_requests/components/reviewers/approval_rules_wrapper.vue","webpack:////build/source/ee/app/assets/javascripts/merge_requests/components/reviewers/approval_rules_wrapper.vue?f8ca","webpack:////build/source/ee/app/assets/javascripts/approvals/components/rules/empty_rule_approvers.vue","webpack:////build/source/ee/app/assets/javascripts/approvals/components/rules/empty_rule_approvers.vue?8dd1","webpack:///../../../ee/app/assets/javascripts/approvals/components/rules/empty_rule_approvers.vue","webpack:////build/source/ee/app/assets/javascripts/approvals/components/rules/empty_rule_approvers.vue?bd36","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/queries/approval_rules.subscription.graphql","webpack:////build/source/ee/app/assets/javascripts/approvals/constants.js","webpack:///./vue_shared/components/help_icon/help_icon.vue","webpack:///./vue_shared/components/help_icon/help_icon.vue?3f9a","webpack:///vue_shared/components/help_icon/help_icon.vue","webpack:///./vue_shared/components/help_icon/help_icon.vue?affe","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/queries/approval_rules.query.graphql"],"names":["doc","loc","source","names","definitions","concat","filter","def","kind","name","value","definitionRefs","findOperation","i","length","element","forEach","refs","Set","collectFragmentReferences","node","add","type","selectionSet","selections","selection","variableDefinitions","module","exports","operationName","newDoc","hasOwnProperty","opRefs","allRefs","newRefs","refName","size","prevRefs","has","childRef","op","push","oneQuery","BVPopoverTemplate","extends","computed","templateType","methods","h","title","content","this","$title","$content","titleDomProps","html","innerHTML","contentDomProps","staticClass","class","templateClasses","attrs","templateAttributes","on","templateListeners","ref","domProps","BVPopover","getTemplate","placement","triggers","BPopover","inheritAttrs","props","getComponent","setContent","normalizeSlot","setTitle","__vue_script__","components","CloseButton","mixins","cssClasses","Array","required","default","String","showCloseButton","Boolean","top","boundaryPadding","Number","$scopedSlots","hasTitle","join","e","$refs","doClose","$emit","popoverRefName","__vue_component__","render","_vm","_h","$createElement","_c","_self","_g","_b","$options","customClass","scopedSlots","_u","key","fn","_t","_v","_s","close","_e","proxy","$attrs","$listeners","staticRenderFns","undefined","apollo","userPermissions","query","userPermissionsQuery","variables","fullPath","projectPath","iid","issuableIid","update","data","_data$project","project","mergeRequest","GlButton","ReviewerDropdown","EmptyRuleApprovers","UncollapsedReviewerList","inject","group","Object","reviewers","showApprovalSections","relativeUrlRoot","_gon$relative_url_roo","gon","relative_url_root","mappedRules","rules","_this","map","rule","reviewersForApprovalRule","getApprovalsLeftText","sprintf","__","approvals","approvedBy","nodes","approvalRequired","approvalsRequired","r","mergeRequestInteraction","applicableApprovalRules","find","a","id","toggleApprovalSections","visibleReviewersForRule","visible","toLowerCase","RULE_TYPE_ANY_APPROVER","ANY_APPROVER","toUpperCase","CODE_OWNERS","RULE_TYPE_CODE_OWNER","_l","sections","section","label","eligibleApprovers","adminMergeRequest","approvalRules","approvalRulesQuery","skip","multipleApprovalRulesAvailable","approvalState","subscribeToMore","document","approvalRulesSubscription","issuableId","convertToGraphQLId","TYPENAME_MERGE_REQUEST","updateQuery","_","subscriptionData","mergeRequestApprovalStateUpdated","queryResult","_queryResult$approval","ApprovalRules","isLoading","_this$$apollo","$apollo","queries","loading","mappedApprovalRules","codeOwners","regular","RULE_TYPE_REGULAR","RULE_TYPE_REPORT_APPROVER","GlPopover","GlLink","HelpIcon","eligibleApproversDocsPath","popoverId","popoverContainerId","component","TYPE_USER","TYPE_GROUP","TYPE_HIDDEN_GROUPS","RULE_TYPE_FALLBACK","RULE_NAME_ANY_APPROVER","COVERAGE_CHECK_NAME","APPROVAL_RULE_CONFIGS","s__","popoverText","documentationText","reportType","APPROVAL_SETTINGS_I18N","learnMore","approvalSettingsHeader","approvalSettingsDescription","saveChanges","loadingErrorMessage","savingErrorMessage","savingSuccessMessage","lockedByAdmin","lockedByGroupOwner","PROJECT_APPROVAL_SETTINGS_LABELS_I18N","authorApprovalLabel","preventMrApprovalRuleEditLabel","preventCommittersApprovalLabel","requireUserPasswordLabel","whenCommitAddedLabel","keepApprovalsLabel","removeApprovalsOnPushLabel","selectiveCodeOwnerRemovalsLabel","GROUP_APPROVAL_SETTINGS_LABELS_I18N","APPROVAL_DIALOG_I18N","form","approvalsRequiredLabel","approvalTypeLabel","approversLabel","nameLabel","nameDescription","protectedBranchLabel","protectedBranchDescription","validations","approvalsRequiredNegativeNumber","approvalsRequiredNotNumber","approvalsRequiredMinimum","approversRequired","branchesRequired","ruleNameTaken","ruleNameMissing","ruleNameTooLong","MR_APPROVALS_PROMO_DISMISSED","MR_APPROVALS_PROMO_TRACKING_EVENTS","learnMoreClick","action","tryNowClick","collapsePromo","expandPromo","MR_APPROVALS_PROMO_I18N","accordionTitle","promoTitle","summary","tryNow","valueStatements","DROPDOWN_OPTION_PROJECT_GROUPS","TABLE_HEADERS","members","branches","actions","GlIcon"],"mappings":"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","file":"1224.16490ac7.chunk.js","sourcesContent":["\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequestApprovalRule\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequest\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approvalState\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"invalidApproversRules\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rules\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approved\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approvalsRequired\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"invalid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"allowMergeWhenInvalid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"section\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approvedBy\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"commentedBy\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"eligibleApprovers\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"scanResultPolicies\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approvalsRequired\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reportType\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":614}};\n    doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/user.fragment.graphql\\\"\\n\\nfragment MergeRequestApprovalRule on MergeRequest {\\n  id\\n  approvalState {\\n    invalidApproversRules {\\n      id\\n    }\\n    rules {\\n      id\\n      type\\n      approved\\n      approvalsRequired\\n      invalid\\n      allowMergeWhenInvalid\\n      name\\n      section\\n      approvedBy {\\n        nodes {\\n          ...User\\n        }\\n      }\\n      commentedBy {\\n        nodes {\\n          ...User\\n        }\\n      }\\n      eligibleApprovers {\\n        ...User\\n      }\\n      scanResultPolicies {\\n        approvalsRequired\\n        name\\n        reportType\\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  doc.definitions = doc.definitions.concat(unique(require(\"~/graphql_shared/fragments/user.fragment.graphql\").definitions));\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[\"MergeRequestApprovalRule\"] = oneQuery(doc, \"MergeRequestApprovalRule\");\n        \n","import { extend } from '../../../vue';\nimport { NAME_POPOVER_TEMPLATE } from '../../../constants/components';\nimport { isFunction, isUndefinedOrNull } from '../../../utils/inspect';\nimport { BVTooltipTemplate } from '../../tooltip/helpers/bv-tooltip-template';\n\n// @vue/component\nconst BVPopoverTemplate = /*#__PURE__*/extend({\n  name: NAME_POPOVER_TEMPLATE,\n  extends: BVTooltipTemplate,\n  computed: {\n    templateType() {\n      return 'popover';\n    }\n  },\n  methods: {\n    renderTemplate(h) {\n      const {\n        title,\n        content\n      } = this;\n\n      // Title and content could be a scoped slot function\n      const $title = isFunction(title) ? title({}) : title;\n      const $content = isFunction(content) ? content({}) : content;\n\n      // Directive usage only\n      const titleDomProps = this.html && !isFunction(title) ? {\n        innerHTML: title\n      } : {};\n      const contentDomProps = this.html && !isFunction(content) ? {\n        innerHTML: content\n      } : {};\n      return h('div', {\n        staticClass: 'popover b-popover',\n        class: this.templateClasses,\n        attrs: this.templateAttributes,\n        on: this.templateListeners\n      }, [h('div', {\n        staticClass: 'arrow',\n        ref: 'arrow'\n      }), isUndefinedOrNull($title) || $title === '' ? /* istanbul ignore next */h() : h('h3', {\n        staticClass: 'popover-header',\n        domProps: titleDomProps\n      }, [$title]), isUndefinedOrNull($content) || $content === '' ? /* istanbul ignore next */h() : h('div', {\n        staticClass: 'popover-body',\n        domProps: contentDomProps\n      }, [$content])]);\n    }\n  }\n});\n\nexport { BVPopoverTemplate };\n","import { extend } from '../../../vue';\nimport { NAME_POPOVER_HELPER } from '../../../constants/components';\nimport { BVTooltip } from '../../tooltip/helpers/bv-tooltip';\nimport { BVPopoverTemplate } from './bv-popover-template';\n\n// Popover \"Class\" (Built as a renderless Vue instance)\n\n// @vue/component\nconst BVPopover = /*#__PURE__*/extend({\n  name: NAME_POPOVER_HELPER,\n  extends: BVTooltip,\n  computed: {\n    // Overwrites BVTooltip\n    templateType() {\n      return 'popover';\n    }\n  },\n  methods: {\n    getTemplate() {\n      // Overwrites BVTooltip\n      return BVPopoverTemplate;\n    }\n  }\n});\n\nexport { BVPopover };\n","import { extend } from '../../vue';\nimport { NAME_POPOVER } from '../../constants/components';\nimport { EVENT_NAME_CLICK } from '../../constants/events';\nimport { PROP_TYPE_STRING, PROP_TYPE_ARRAY_STRING } from '../../constants/props';\nimport { SLOT_NAME_TITLE } from '../../constants/slots';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\nimport { props as props$1, BTooltip } from '../tooltip/tooltip';\nimport { BVPopover } from './helpers/bv-popover';\nimport { sortKeys } from '../../utils/object';\n\n// --- Props ---\n\nconst props = makePropsConfigurable(sortKeys({\n  ...props$1,\n  content: makeProp(PROP_TYPE_STRING),\n  placement: makeProp(PROP_TYPE_STRING, 'right'),\n  triggers: makeProp(PROP_TYPE_ARRAY_STRING, EVENT_NAME_CLICK)\n}), NAME_POPOVER);\n\n// --- Main component ---\n\n// @vue/component\nconst BPopover = /*#__PURE__*/extend({\n  name: NAME_POPOVER,\n  extends: BTooltip,\n  inheritAttrs: false,\n  props,\n  methods: {\n    getComponent() {\n      // Overridden by BPopover\n      return BVPopover;\n    },\n    updateContent() {\n      // Tooltip: Default slot is `title`\n      // Popover: Default slot is `content`, `title` slot is title\n      // We pass a scoped slot function references by default (Vue v2.6x)\n      // And pass the title prop as a fallback\n      this.setContent(this.normalizeSlot() || this.content);\n      this.setTitle(this.normalizeSlot(SLOT_NAME_TITLE) || this.title);\n    }\n  }\n  // Render function provided by BTooltip\n});\n\nexport { BPopover, props };\n","import { BPopover } from '../../../vendor/bootstrap-vue/src/components/popover/popover';\nimport tooltipMixin from '../../mixins/tooltip_mixin';\nimport CloseButton from '../../shared_components/close_button/close_button';\nimport { popoverPlacements } from '../../../utils/constants';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nconst popoverRefName = 'bPopover';\nvar script = {\n  name: 'GlPopover',\n  components: {\n    BPopover,\n    CloseButton\n  },\n  mixins: [tooltipMixin(popoverRefName)],\n  inheritAttrs: false,\n  props: {\n    cssClasses: {\n      type: Array,\n      required: false,\n      default: () => []\n    },\n    /**\n     * Space-separated triggers for the popover.\n     *\n     * @values click, hover, focus, manual\n     */\n    triggers: {\n      type: String,\n      required: false,\n      default: 'hover focus'\n    },\n    title: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    showCloseButton: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    placement: {\n      type: String,\n      required: false,\n      default: popoverPlacements.top\n    },\n    boundaryPadding: {\n      type: [Number, String],\n      required: false,\n      default: 5\n    }\n  },\n  computed: {\n    hasTitle() {\n      return this.$scopedSlots.title || this.title;\n    },\n    customClass() {\n      return ['gl-popover', this.hasTitle && 'has-title', this.showCloseButton && 'has-close-button', ...this.cssClasses].filter(Boolean).join(' ');\n    },\n    shouldShowTitle() {\n      return this.hasTitle || this.showCloseButton;\n    }\n  },\n  methods: {\n    close(e) {\n      this.$refs[popoverRefName].doClose();\n      /**\n       * Emitted when the close button is clicked (requires showCloseButton to be `true`).\n       */\n      this.$emit('close-button-clicked', e);\n    }\n  },\n  popoverRefName\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('b-popover',_vm._g(_vm._b({ref:_vm.$options.popoverRefName,attrs:{\"custom-class\":_vm.customClass,\"triggers\":_vm.triggers,\"title\":_vm.title,\"placement\":_vm.placement,\"boundary-padding\":_vm.boundaryPadding},scopedSlots:_vm._u([(_vm.shouldShowTitle)?{key:\"title\",fn:function(){return [_vm._t(\"title\",function(){return [_vm._v(\"\\n      \"+_vm._s(_vm.title)+\"\\n    \")]}),_vm._v(\" \"),(_vm.showCloseButton)?_c('div',{staticClass:\"-gl-mr-3 -gl-mt-2 gl-ml-3 gl-h-0\"},[_c('close-button',{class:{ 'gl-float-right gl-mt-2': !_vm.hasTitle },attrs:{\"data-testid\":\"close-button\"},on:{\"click\":_vm.close}})],1):_vm._e()]},proxy:true}:null],null,true)},'b-popover',_vm.$attrs,false),_vm.$listeners),[_vm._v(\" \"),_vm._t(\"default\")],2)};\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","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isLoading)?_c('div',[_c('div',{staticClass:\"gl-animate-skeleton-loader gl-mb-3 gl-h-4 !gl-max-w-30 gl-rounded-base\"}),_vm._v(\" \"),_c('div',{staticClass:\"gl-animate-skeleton-loader gl-mb-3 gl-h-4 !gl-max-w-30 gl-rounded-base\"}),_vm._v(\" \"),_c('div',{staticClass:\"gl-animate-skeleton-loader gl-mb-3 gl-h-4 !gl-max-w-30 gl-rounded-base\"}),_vm._v(\" \"),_c('div',{staticClass:\"gl-animate-skeleton-loader gl-mb-3 gl-h-4 !gl-max-w-30 gl-rounded-base\"})]):_c('div',{staticClass:\"!gl-p-0\"},_vm._l((_vm.mappedApprovalRules),function(group){return _c('approval-rules',{key:group.key,attrs:{\"reviewers\":_vm.reviewers,\"group\":group},on:{\"request-review\":(data) => _vm.$emit('request-review', data),\"remove-reviewer\":(data) => _vm.$emit('remove-reviewer', data)}})}),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!./approval_rules.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!./approval_rules.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\nimport { sprintf, __ } from '~/locale';\nimport ReviewerDropdown from '~/merge_requests/components/reviewers/reviewer_dropdown.vue';\nimport EmptyRuleApprovers from 'ee/approvals/components/rules/empty_rule_approvers.vue';\nimport UncollapsedReviewerList from '~/sidebar/components/reviewers/uncollapsed_reviewer_list.vue';\nimport userPermissionsQuery from '~/merge_requests/components/reviewers/queries/user_permissions.query.graphql';\nimport { RULE_TYPE_ANY_APPROVER, RULE_TYPE_CODE_OWNER } from 'ee/approvals/constants';\n\nexport default {\n  apollo: {\n    userPermissions: {\n      query: userPermissionsQuery,\n      variables() {\n        return {\n          fullPath: this.projectPath,\n          iid: this.issuableIid,\n        };\n      },\n      update: (data) => data.project?.mergeRequest?.userPermissions || {},\n    },\n  },\n  components: {\n    GlButton,\n    ReviewerDropdown,\n    EmptyRuleApprovers,\n    UncollapsedReviewerList,\n  },\n  inject: ['projectPath', 'issuableIid'],\n  props: {\n    group: {\n      type: Object,\n      required: true,\n    },\n    reviewers: {\n      type: Array,\n      required: true,\n    },\n  },\n  data() {\n    return {\n      userPermissions: {},\n      showApprovalSections: this.group.key !== 'optional',\n    };\n  },\n  computed: {\n    relativeUrlRoot() {\n      return gon.relative_url_root ?? '';\n    },\n  },\n  methods: {\n    mappedRules(rules) {\n      return rules.map((rule) => ({\n        ...rule,\n        reviewers: this.reviewersForApprovalRule(rule),\n      }));\n    },\n    getApprovalsLeftText(rule) {\n      return sprintf(__('%{approvals} of %{approvalRequired}'), {\n        approvals: rule.approvedBy.nodes.length,\n        approvalRequired: rule.approvalsRequired,\n      });\n    },\n    reviewersForApprovalRule(rule) {\n      return this.reviewers.filter((r) =>\n        r.mergeRequestInteraction.applicableApprovalRules.find((a) => a.id === rule.id),\n      );\n    },\n    toggleApprovalSections() {\n      this.showApprovalSections = !this.showApprovalSections;\n    },\n    visibleReviewersForRule(rule) {\n      let visible = rule.reviewers;\n\n      if (rule.type.toLowerCase() === RULE_TYPE_ANY_APPROVER) {\n        visible = this.reviewers;\n      }\n\n      return visible;\n    },\n  },\n  ANY_APPROVER: RULE_TYPE_ANY_APPROVER.toUpperCase(),\n  CODE_OWNERS: RULE_TYPE_CODE_OWNER.toUpperCase(),\n};\n</script>\n\n<template>\n  <div>\n    <div\n      v-if=\"group.key === 'optional'\"\n      class=\"gl-border-b-1 gl-border-b-default gl-px-5 gl-py-3 gl-border-b-solid\"\n    >\n      <gl-button\n        category=\"tertiary\"\n        size=\"small\"\n        :icon=\"showApprovalSections ? 'chevron-down' : 'chevron-right'\"\n        data-testid=\"optional-rules-toggle\"\n        @click=\"toggleApprovalSections\"\n      >\n        {{ __('Optional approvals') }}\n      </gl-button>\n    </div>\n    <template v-if=\"showApprovalSections\">\n      <table\n        v-for=\"section in group.sections\"\n        :key=\"section.key\"\n        class=\"!gl-mb-0 gl-w-full gl-table-fixed\"\n      >\n        <thead>\n          <tr class=\"gl-border-b-1 gl-border-b-default gl-border-b-solid\">\n            <th class=\"w-60p gl-px-5 gl-py-3 gl-text-sm gl-font-semibold gl-text-subtle\">\n              {{ section.label }}\n            </th>\n            <th class=\"w-30p gl-px-5 gl-py-3 gl-text-sm gl-font-semibold gl-text-subtle\">\n              {{ __('Approvals') }}\n            </th>\n            <th class=\"w-30p gl-px-5 gl-py-3\"></th>\n          </tr>\n        </thead>\n        <tbody>\n          <template v-for=\"rule in mappedRules(section.rules)\">\n            <tr\n              :key=\"rule.id\"\n              class=\"gl-border-b-1 gl-bg-gray-10\"\n              :class=\"{\n                'gl-border-b-default gl-border-b-solid': !rule.reviewers.length,\n              }\"\n            >\n              <td class=\"gl-px-5 gl-py-3\">\n                <empty-rule-approvers\n                  v-if=\"rule.type === $options.ANY_APPROVER\"\n                  popover-id=\"sidebar-pop-approver\"\n                  popover-container-id=\"sidebar-popover-container\"\n                />\n                <template v-else>\n                  <span\n                    v-if=\"rule.section && rule.section !== 'codeowners'\"\n                    class=\"gl-block\"\n                    data-testid=\"section-name\"\n                  >\n                    {{ rule.section }}\n                  </span>\n                  <span\n                    :class=\"{\n                      'gl-break-all gl-text-sm gl-font-monospace':\n                        rule.type === $options.CODE_OWNERS,\n                    }\"\n                  >\n                    {{ rule.name }}\n                  </span>\n                </template>\n              </td>\n              <td class=\"gl-px-5 gl-py-3\">\n                {{ getApprovalsLeftText(rule) }}\n              </td>\n              <td class=\"gl-px-5 gl-py-3\">\n                <div class=\"gl-flex gl-justify-end\">\n                  <reviewer-dropdown\n                    :selected-reviewers=\"reviewers\"\n                    :visible-reviewers=\"visibleReviewersForRule(rule)\"\n                    :users=\"rule.eligibleApprovers\"\n                  />\n                </div>\n              </td>\n            </tr>\n            <tr\n              v-if=\"rule.reviewers.length\"\n              :key=\"`${rule.id}-reviewers`\"\n              class=\"gl-border-b-1 gl-border-b-default gl-bg-gray-10 gl-border-b-solid\"\n            >\n              <td colspan=\"3\" class=\"gl-px-5 gl-pb-3\">\n                <uncollapsed-reviewer-list\n                  :users=\"rule.reviewers\"\n                  :root-path=\"relativeUrlRoot\"\n                  :is-editable=\"userPermissions.adminMergeRequest\"\n                  @request-review=\"(data) => $emit('request-review', data)\"\n                  @remove-reviewer=\"(data) => $emit('remove-reviewer', data)\"\n                />\n              </td>\n            </tr>\n          </template>\n        </tbody>\n      </table>\n    </template>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./approval_rules.vue?vue&type=template&id=5007691f\"\nimport script from \"./approval_rules.vue?vue&type=script&lang=js\"\nexport * from \"./approval_rules.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('div',[(_vm.group.key === 'optional')?_c('div',{staticClass:\"gl-border-b-1 gl-border-b-default gl-px-5 gl-py-3 gl-border-b-solid\"},[_c('gl-button',{attrs:{\"category\":\"tertiary\",\"size\":\"small\",\"icon\":_vm.showApprovalSections ? 'chevron-down' : 'chevron-right',\"data-testid\":\"optional-rules-toggle\"},on:{\"click\":_vm.toggleApprovalSections}},[_vm._v(\"\\n      \"+_vm._s(_vm.__('Optional approvals'))+\"\\n    \")])],1):_vm._e(),_vm._v(\" \"),(_vm.showApprovalSections)?_vm._l((_vm.group.sections),function(section){return _c('table',{key:section.key,staticClass:\"!gl-mb-0 gl-w-full gl-table-fixed\"},[_c('thead',[_c('tr',{staticClass:\"gl-border-b-1 gl-border-b-default gl-border-b-solid\"},[_c('th',{staticClass:\"w-60p gl-px-5 gl-py-3 gl-text-sm gl-font-semibold gl-text-subtle\"},[_vm._v(\"\\n            \"+_vm._s(section.label)+\"\\n          \")]),_vm._v(\" \"),_c('th',{staticClass:\"w-30p gl-px-5 gl-py-3 gl-text-sm gl-font-semibold gl-text-subtle\"},[_vm._v(\"\\n            \"+_vm._s(_vm.__('Approvals'))+\"\\n          \")]),_vm._v(\" \"),_c('th',{staticClass:\"w-30p gl-px-5 gl-py-3\"})])]),_vm._v(\" \"),_c('tbody',[_vm._l((_vm.mappedRules(section.rules)),function(rule){return [_c('tr',{key:rule.id,staticClass:\"gl-border-b-1 gl-bg-gray-10\",class:{\n              'gl-border-b-default gl-border-b-solid': !rule.reviewers.length,\n            }},[_c('td',{staticClass:\"gl-px-5 gl-py-3\"},[(rule.type === _vm.$options.ANY_APPROVER)?_c('empty-rule-approvers',{attrs:{\"popover-id\":\"sidebar-pop-approver\",\"popover-container-id\":\"sidebar-popover-container\"}}):[(rule.section && rule.section !== 'codeowners')?_c('span',{staticClass:\"gl-block\",attrs:{\"data-testid\":\"section-name\"}},[_vm._v(\"\\n                  \"+_vm._s(rule.section)+\"\\n                \")]):_vm._e(),_vm._v(\" \"),_c('span',{class:{\n                    'gl-break-all gl-text-sm gl-font-monospace':\n                      rule.type === _vm.$options.CODE_OWNERS,\n                  }},[_vm._v(\"\\n                  \"+_vm._s(rule.name)+\"\\n                \")])]],2),_vm._v(\" \"),_c('td',{staticClass:\"gl-px-5 gl-py-3\"},[_vm._v(\"\\n              \"+_vm._s(_vm.getApprovalsLeftText(rule))+\"\\n            \")]),_vm._v(\" \"),_c('td',{staticClass:\"gl-px-5 gl-py-3\"},[_c('div',{staticClass:\"gl-flex gl-justify-end\"},[_c('reviewer-dropdown',{attrs:{\"selected-reviewers\":_vm.reviewers,\"visible-reviewers\":_vm.visibleReviewersForRule(rule),\"users\":rule.eligibleApprovers}})],1)])]),_vm._v(\" \"),(rule.reviewers.length)?_c('tr',{key:`${rule.id}-reviewers`,staticClass:\"gl-border-b-1 gl-border-b-default gl-bg-gray-10 gl-border-b-solid\"},[_c('td',{staticClass:\"gl-px-5 gl-pb-3\",attrs:{\"colspan\":\"3\"}},[_c('uncollapsed-reviewer-list',{attrs:{\"users\":rule.reviewers,\"root-path\":_vm.relativeUrlRoot,\"is-editable\":_vm.userPermissions.adminMergeRequest},on:{\"request-review\":(data) => _vm.$emit('request-review', data),\"remove-reviewer\":(data) => _vm.$emit('remove-reviewer', data)}})],1)]):_vm._e()]})],2)])}):_vm._e()],2)\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!./approval_rules_wrapper.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!./approval_rules_wrapper.vue?vue&type=script&lang=js\"","<script>\nimport { __ } from '~/locale';\nimport { TYPENAME_MERGE_REQUEST } from '~/graphql_shared/constants';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\nimport approvalRulesQuery from 'ee/vue_merge_request_widget/components/approvals/queries/approval_rules.query.graphql';\nimport approvalRulesSubscription from 'ee/vue_merge_request_widget/components/approvals/queries/approval_rules.subscription.graphql';\nimport {\n  RULE_TYPE_ANY_APPROVER,\n  RULE_TYPE_REGULAR,\n  RULE_TYPE_REPORT_APPROVER,\n  RULE_TYPE_CODE_OWNER,\n} from 'ee/approvals/constants';\nimport ApprovalRules from './approval_rules.vue';\n\nexport default {\n  apollo: {\n    approvalRules: {\n      query: approvalRulesQuery,\n      variables() {\n        return {\n          projectPath: this.projectPath,\n          iid: this.issuableIid,\n        };\n      },\n      skip() {\n        return !this.multipleApprovalRulesAvailable;\n      },\n      update: (data) => data.project?.mergeRequest?.approvalState?.rules || [],\n      subscribeToMore: {\n        document: approvalRulesSubscription,\n        variables() {\n          return {\n            issuableId: convertToGraphQLId(TYPENAME_MERGE_REQUEST, this.issuableId),\n          };\n        },\n        updateQuery(\n          _,\n          {\n            subscriptionData: {\n              data: { mergeRequestApprovalStateUpdated: queryResult },\n            },\n          },\n        ) {\n          if (queryResult) {\n            this.approvalRules = queryResult.approvalState?.rules || [];\n          }\n        },\n      },\n    },\n  },\n  components: {\n    ApprovalRules,\n  },\n  inject: ['projectPath', 'issuableIid', 'issuableId', 'multipleApprovalRulesAvailable'],\n  props: {\n    reviewers: {\n      type: Array,\n      required: true,\n    },\n  },\n  data() {\n    return {\n      approvalRules: [],\n    };\n  },\n  computed: {\n    isLoading() {\n      return this.$apollo?.queries.approvalRules.loading;\n    },\n    mappedApprovalRules() {\n      const codeOwners = this.approvalRules.filter(\n        ({ type }) => type.toLowerCase() === RULE_TYPE_CODE_OWNER,\n      );\n      const regular = this.approvalRules.filter((r) => {\n        const type = r.type.toLowerCase();\n\n        return (\n          type === RULE_TYPE_REGULAR ||\n          type === RULE_TYPE_ANY_APPROVER ||\n          type === RULE_TYPE_REPORT_APPROVER\n        );\n      });\n\n      return [\n        {\n          key: 'required',\n          sections: [\n            {\n              key: 'regular',\n              label: __('Approval Rules'),\n              rules: regular.filter((r) => r.approvalsRequired),\n            },\n            {\n              key: 'code_owner',\n              label: __('Code Owners'),\n              rules: codeOwners.filter((r) => r.approvalsRequired),\n            },\n          ].filter(({ rules }) => rules.length),\n        },\n        {\n          key: 'optional',\n          sections: [\n            {\n              key: 'regular',\n              label: __('Approval Rules'),\n              rules: regular.filter((r) => !r.approvalsRequired),\n            },\n            {\n              key: 'code_owner',\n              label: __('Code Owners'),\n              rules: codeOwners.filter((r) => !r.approvalsRequired),\n            },\n          ].filter(({ rules }) => rules.length),\n        },\n      ].filter(({ sections }) => sections.length);\n    },\n  },\n};\n</script>\n\n<template>\n  <div v-if=\"isLoading\">\n    <div class=\"gl-animate-skeleton-loader gl-mb-3 gl-h-4 !gl-max-w-30 gl-rounded-base\"></div>\n    <div class=\"gl-animate-skeleton-loader gl-mb-3 gl-h-4 !gl-max-w-30 gl-rounded-base\"></div>\n    <div class=\"gl-animate-skeleton-loader gl-mb-3 gl-h-4 !gl-max-w-30 gl-rounded-base\"></div>\n    <div class=\"gl-animate-skeleton-loader gl-mb-3 gl-h-4 !gl-max-w-30 gl-rounded-base\"></div>\n  </div>\n  <div v-else class=\"!gl-p-0\">\n    <approval-rules\n      v-for=\"group in mappedApprovalRules\"\n      :key=\"group.key\"\n      :reviewers=\"reviewers\"\n      :group=\"group\"\n      @request-review=\"(data) => $emit('request-review', data)\"\n      @remove-reviewer=\"(data) => $emit('remove-reviewer', data)\"\n    />\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./approval_rules_wrapper.vue?vue&type=template&id=5738988f\"\nimport script from \"./approval_rules_wrapper.vue?vue&type=script&lang=js\"\nexport * from \"./approval_rules_wrapper.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('div',{staticClass:\"gl-flex gl-items-center\"},[_c('span',[_vm._v(_vm._s(_vm.__('Any eligible user')))]),_vm._v(\" \"),_c('span',{staticClass:\"gl-ml-2 gl-inline-flex\",attrs:{\"id\":_vm.popoverContainerId}},[_c('help-icon',{staticClass:\"author-link\",attrs:{\"id\":_vm.popoverId,\"tabindex\":\"0\",\"aria-label\":_vm.__('help')}}),_vm._v(\" \"),_c('gl-popover',{attrs:{\"target\":_vm.popoverId,\"container\":_vm.popoverContainerId,\"placement\":\"top\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(_vm._s(_vm.__('Who can approve?')))]},proxy:true}])},[_vm._v(\" \"),_c('ul',{staticClass:\"gl-pl-5\"},[_c('li',[_vm._v(\"\\n          \"+_vm._s(_vm.__('Any member with at least Developer permissions on the project.'))+\"\\n        \")]),_vm._v(\" \"),_c('li',[_vm._v(_vm._s(_vm.__('Members listed as CODEOWNERS of affected files.')))]),_vm._v(\" \"),_c('li',[_vm._v(\"\\n          \"+_vm._s(_vm.__(\"Users or groups set as approvers in the project's or merge request's settings.\"))+\"\\n        \")])]),_vm._v(\" \"),_c('gl-link',{staticClass:\"text-1\",attrs:{\"href\":_vm.eligibleApproversDocsPath,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.__('More information')))])],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!./empty_rule_approvers.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!./empty_rule_approvers.vue?vue&type=script&lang=js\"","<script>\nimport { GlPopover, GlLink } from '@gitlab/ui';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\n\nexport default {\n  components: {\n    GlPopover,\n    GlLink,\n    HelpIcon,\n  },\n  props: {\n    eligibleApproversDocsPath: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    popoverId: {\n      type: String,\n      required: false,\n      default: 'pop-approver',\n    },\n    popoverContainerId: {\n      type: String,\n      required: false,\n      default: 'popovercontainer',\n    },\n  },\n};\n</script>\n\n<template>\n  <div class=\"gl-flex gl-items-center\">\n    <span>{{ __('Any eligible user') }}</span>\n    <span :id=\"popoverContainerId\" class=\"gl-ml-2 gl-inline-flex\">\n      <help-icon :id=\"popoverId\" tabindex=\"0\" :aria-label=\"__('help')\" class=\"author-link\" />\n      <gl-popover :target=\"popoverId\" :container=\"popoverContainerId\" placement=\"top\">\n        <template #title>{{ __('Who can approve?') }}</template>\n        <ul class=\"gl-pl-5\">\n          <li>\n            {{ __('Any member with at least Developer permissions on the project.') }}\n          </li>\n          <li>{{ __('Members listed as CODEOWNERS of affected files.') }}</li>\n          <li>\n            {{\n              __(\"Users or groups set as approvers in the project's or merge request's settings.\")\n            }}\n          </li>\n        </ul>\n        <gl-link :href=\"eligibleApproversDocsPath\" class=\"text-1\" target=\"_blank\">{{\n          __('More information')\n        }}</gl-link>\n      </gl-popover>\n    </span>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./empty_rule_approvers.vue?vue&type=template&id=00f0f20a\"\nimport script from \"./empty_rule_approvers.vue?vue&type=script&lang=js\"\nexport * from \"./empty_rule_approvers.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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"approvalRulesApprovalStateUpdatedEE\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestApprovalStateUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequest\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequestApprovalRule\"},\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":295}};\n    doc.loc.source = {\"body\":\"#import \\\"ee/graphql_shared/fragments/merge_request.approval_rule.fragment.graphql\\\"\\n\\nsubscription approvalRulesApprovalStateUpdatedEE($issuableId: IssuableID!) {\\n  mergeRequestApprovalStateUpdated(issuableId: $issuableId) {\\n    ... on MergeRequest {\\n      ...MergeRequestApprovalRule\\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  doc.definitions = doc.definitions.concat(unique(require(\"ee/graphql_shared/fragments/merge_request.approval_rule.fragment.graphql\").definitions));\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[\"approvalRulesApprovalStateUpdatedEE\"] = oneQuery(doc, \"approvalRulesApprovalStateUpdatedEE\");\n        \n","import { __, s__ } from '~/locale';\n\nexport const TYPE_USER = 'user';\nexport const TYPE_GROUP = 'group';\nexport const TYPE_HIDDEN_GROUPS = 'hidden_groups';\n\nexport const RULE_TYPE_FALLBACK = 'fallback';\nexport const RULE_TYPE_REGULAR = 'regular';\nexport const RULE_TYPE_REPORT_APPROVER = 'report_approver';\nexport const RULE_TYPE_CODE_OWNER = 'code_owner';\nexport const RULE_TYPE_ANY_APPROVER = 'any_approver';\nexport const RULE_NAME_ANY_APPROVER = 'All Members';\n\nexport const LICENSE_CHECK_NAME = 'License-Check';\nexport const COVERAGE_CHECK_NAME = 'Coverage-Check';\n\nexport const REPORT_TYPE_LICENSE_SCANNING = 'license_scanning';\nexport const REPORT_TYPE_CODE_COVERAGE = 'code_coverage';\n\nexport const APPROVAL_RULE_CONFIGS = {\n  [COVERAGE_CHECK_NAME]: {\n    title: s__('SecurityApprovals|Coverage-Check'),\n    popoverText: s__(\n      'SecurityApprovals|A merge request approval is required when test coverage declines.',\n    ),\n    documentationText: s__('SecurityApprovals|Learn more about Coverage-Check'),\n    reportType: REPORT_TYPE_CODE_COVERAGE,\n  },\n};\n\nexport const APPROVAL_SETTINGS_I18N = {\n  learnMore: __('Learn more.'),\n  approvalSettingsHeader: __('Approval settings'),\n  approvalSettingsDescription: __('Define how approval rules are applied to merge requests.'),\n  saveChanges: __('Save changes'),\n  loadingErrorMessage: s__(\n    'ApprovalSettings|There was an error loading merge request approval settings.',\n  ),\n  savingErrorMessage: s__(\n    'ApprovalSettings|There was an error updating merge request approval settings.',\n  ),\n  savingSuccessMessage: s__('ApprovalSettings|Merge request approval settings have been updated.'),\n  lockedByAdmin: s__(\n    'ApprovalSettings|This setting is configured at the instance level and can only be changed by an administrator.',\n  ),\n  lockedByGroupOwner: s__(\n    'ApprovalSettings|This setting is configured in %{groupName} and can only be changed in the group settings by an administrator or group owner.',\n  ),\n};\n\nexport const PROJECT_APPROVAL_SETTINGS_LABELS_I18N = {\n  authorApprovalLabel: s__('ApprovalSettings|Prevent approval by author'),\n  preventMrApprovalRuleEditLabel: s__(\n    'ApprovalSettings|Prevent editing approval rules in merge requests',\n  ),\n  preventCommittersApprovalLabel: s__(\n    'ApprovalSettings|Prevent approvals by users who add commits',\n  ),\n  requireUserPasswordLabel: s__(\n    'ApprovalSettings|Require user re-authentication (password or SAML) to approve',\n  ),\n  whenCommitAddedLabel: s__('ApprovalSettings|When a commit is added:'),\n  keepApprovalsLabel: s__('ApprovalSettings|Keep approvals'),\n  removeApprovalsOnPushLabel: s__('ApprovalSettings|Remove all approvals'),\n  selectiveCodeOwnerRemovalsLabel: s__(\n    'ApprovalSettings|Remove approvals by Code Owners if their files changed',\n  ),\n};\n\nexport const GROUP_APPROVAL_SETTINGS_LABELS_I18N = {\n  ...PROJECT_APPROVAL_SETTINGS_LABELS_I18N,\n  preventMrApprovalRuleEditLabel: s__(\n    'ApprovalSettings|Prevent editing approval rules in projects and merge requests.',\n  ),\n};\n\nexport const APPROVAL_DIALOG_I18N = {\n  form: {\n    approvalsRequiredLabel: s__('ApprovalRule|Required number of approvals'),\n    approvalTypeLabel: s__('ApprovalRule|Approver Type'),\n    approversLabel: s__('ApprovalRule|Add approvers'),\n    nameLabel: s__('ApprovalRule|Rule name'),\n    nameDescription: s__('ApprovalRule|Examples: QA, Security.'),\n    protectedBranchLabel: s__('ApprovalRule|Target branch'),\n    protectedBranchDescription: __(\n      'Apply this approval rule to all branches or a specific protected branch.',\n    ),\n  },\n  validations: {\n    approvalsRequiredNegativeNumber: __('Please enter a non-negative number'),\n    approvalsRequiredNotNumber: __('Please enter a valid number'),\n    approvalsRequiredMinimum: __(\n      'Please enter a number greater than %{number} (from the project settings)',\n    ),\n    approversRequired: __('Please select and add a member'),\n    branchesRequired: __('Please select a valid target branch'),\n    ruleNameTaken: __('Rule name is already taken.'),\n    ruleNameMissing: __('Please provide a name'),\n    ruleNameTooLong: __('Please enter a name with less than %{number} characters.'),\n  },\n};\n\nexport const MR_APPROVALS_PROMO_DISMISSED = 'mr_approvals_promo.dismissed';\nexport const MR_APPROVALS_PROMO_TRACKING_EVENTS = {\n  learnMoreClick: { action: 'click_link', label: 'learn_more_merge_approval' },\n  tryNowClick: { action: 'click_button', label: 'start_trial' },\n  collapsePromo: { action: 'click_button', label: 'collapse_approval_rules' },\n  expandPromo: { action: 'click_button', label: 'expand_approval_rules' },\n};\nexport const MR_APPROVALS_PROMO_I18N = {\n  accordionTitle: s__('ApprovalRule|Approval rules'),\n  learnMore: __('Learn more'),\n  promoTitle: s__(\"ApprovalRule|Improve your organization's code review with required approvals.\"),\n  summary: __('Approvals are optional.'),\n  tryNow: s__('ApprovalRule|Try for free'),\n  valueStatements: [\n    s__('ApprovalRule|Select eligible approvers by expertise or files changed.'),\n    s__('ApprovalRule|Increase quality and maintain standards.'),\n    s__('ApprovalRule|Reduce your time to merge.'),\n  ],\n};\n\nexport const SEARCH_PLACEHOLDER = s__('ApprovalRule|Search users or groups');\n\nexport const DROPDOWN_OPTION_PROJECT_GROUPS = s__('ApprovalRule|Search in project groups');\n\nexport const DROPDOWN_OPTION_ALL_GROUPS = s__('ApprovalRule|Search in all groups');\n\nexport const GROUP_OPTIONS = [DROPDOWN_OPTION_ALL_GROUPS, DROPDOWN_OPTION_PROJECT_GROUPS];\n\nexport const TABLE_HEADERS = {\n  name: s__('ApprovalRule|Rule'),\n  members: s__('ApprovalRule|Approvers'),\n  approvalsRequired: s__('ApprovalRule|Approvals required'),\n  branches: __('Target branch'),\n  actions: __('Actions'),\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-icon',_vm._b({staticClass:\"gl-cursor-help\",attrs:{\"name\":\"question-o\",\"size\":16,\"variant\":\"info\"}},'gl-icon',_vm.$attrs,false))\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!./help_icon.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!./help_icon.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon } from '@gitlab/ui';\n\nexport default {\n  components: {\n    GlIcon,\n  },\n};\n</script>\n<template>\n  <gl-icon v-bind=\"$attrs\" name=\"question-o\" :size=\"16\" variant=\"info\" class=\"gl-cursor-help\" />\n</template>\n","import { render, staticRenderFns } from \"./help_icon.vue?vue&type=template&id=200e29f0\"\nimport script from \"./help_icon.vue?vue&type=script&lang=js\"\nexport * from \"./help_icon.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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"approvalRules\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"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\":\"projectPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequestApprovalRule\"},\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":259}};\n    doc.loc.source = {\"body\":\"#import \\\"ee/graphql_shared/fragments/merge_request.approval_rule.fragment.graphql\\\"\\n\\nquery approvalRules($projectPath: ID!, $iid: String!) {\\n  project(fullPath: $projectPath) {\\n    id\\n    mergeRequest(iid: $iid) {\\n      ...MergeRequestApprovalRule\\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  doc.definitions = doc.definitions.concat(unique(require(\"ee/graphql_shared/fragments/merge_request.approval_rule.fragment.graphql\").definitions));\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[\"approvalRules\"] = oneQuery(doc, \"approvalRules\");\n        \n"],"sourceRoot":""}