{"version":3,"sources":["webpack:///./ci/pipeline_mini_graph/graphql/mutations/job_play.mutation.graphql","webpack:///./ci/pipeline_mini_graph/graphql/mutations/job_unschedule.mutation.graphql","webpack:///./ci/pipeline_mini_graph/graphql/queries/get_pipeline_stage_jobs.query.graphql","webpack:///./ci/pipeline_mini_graph/pipeline_mini_graph.vue","webpack:///./ci/pipeline_mini_graph/utils/data_utils.js","webpack:///./ci/pipeline_mini_graph/downstream_pipelines.vue","webpack:///./ci/pipeline_mini_graph/downstream_pipelines.vue?f504","webpack:///ci/pipeline_mini_graph/downstream_pipelines.vue","webpack:///./ci/pipeline_mini_graph/downstream_pipelines.vue?0382","webpack:///./ci/pipeline_mini_graph/pipeline_stage_dropdown.vue?5247","webpack:///ci/pipeline_mini_graph/pipeline_stage_dropdown.vue","webpack:///./ci/pipeline_mini_graph/pipeline_stages.vue?789d","webpack:///ci/pipeline_mini_graph/pipeline_stages.vue","webpack:///./ci/pipeline_mini_graph/pipeline_stage_dropdown.vue?93d4","webpack:///./ci/pipeline_mini_graph/pipeline_stage_dropdown.vue","webpack:///./ci/pipeline_mini_graph/pipeline_stages.vue?35b5","webpack:///./ci/pipeline_mini_graph/pipeline_stages.vue","webpack:///./ci/pipeline_mini_graph/pipeline_mini_graph.vue?7660","webpack:///ci/pipeline_mini_graph/pipeline_mini_graph.vue","webpack:///./ci/pipeline_mini_graph/pipeline_mini_graph.vue?73e2","webpack:///./ci/pipeline_mini_graph/graphql/mutations/job_cancel.mutation.graphql","webpack:///./ci/pipeline_mini_graph/graphql/fragments/job.fragment.graphql","webpack:///./ci/mixins/delayed_job_mixin.js","webpack:///./ci/constants.js","webpack:///./ci/common/private/job_name_component.vue","webpack:///./ci/common/private/job_name_component.vue?272b","webpack:///ci/common/private/job_name_component.vue","webpack:///./ci/common/private/job_name_component.vue?453a","webpack:///./ci/pipeline_mini_graph/graphql/mutations/job_retry.mutation.graphql","webpack:///./ci/common/private/job_dropdown_item.vue","webpack:///./ci/common/private/job_action_modal.vue?21ee","webpack:///ci/common/private/job_action_modal.vue","webpack:///./ci/common/private/job_action_modal.vue?c514","webpack:///./ci/common/private/job_action_modal.vue","webpack:///ci/common/private/job_action_button.vue","webpack:///./ci/common/private/job_action_button.vue?28db","webpack:///./ci/common/private/job_dropdown_item.vue?1d97","webpack:///ci/common/private/job_dropdown_item.vue","webpack:///./ci/common/private/job_action_button.vue?6d71","webpack:///./ci/common/private/job_action_button.vue","webpack:///./ci/common/private/job_dropdown_item.vue?6f73"],"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","hasDetailedStatus","item","Boolean","detailedStatus","directives","GlTooltip","GlTooltipDirective","components","CiIcon","props","pipelines","Array","required","default","pipelinePath","String","data","maxRenderedPipelines","computed","totalPipelineCount","pipelinesTrimmed","slice","shouldRenderCounter","counterLabel","counterTooltipText","sprintf","s__","methods","pipelineTooltipText","pipeline","_pipeline$project","_pipeline$detailedSta","project","label","_vm","this","_c","_self","staticClass","_l","rawName","modifiers","key","id","attrs","_v","title","expression","_s","_e","i18n","loadingText","__","mergeTrainMessage","stage","stageJobsFetchError","viewStageLabel","GlButton","GlDisclosureDropdown","GlLoadingIcon","JobDropdownItem","isMergeTrain","Object","emits","isDropdownOpen","stageJobs","apollo","context","getQueryHeaders","graphqlEtag","query","getPipelineStageJobsQuery","variables","skip","pollInterval","PIPELINE_POLL_INTERVAL_DEFAULT","update","_data$ciPipelineStage","ciPipelineStage","jobs","nodes","error","createAlert","message","$options","reportToSentry","dropdownHeaderText","dropdownTooltipTitle","tooltip","graphqlEtagStagePath","getIdFromGraphQLId","isLoading","$apollo","queries","loading","mounted","toggleQueryPollingByVisibility","onHideDropdown","stopPolling","onShowDropdown","startPolling","$emit","stageAriaLabel","PipelineStageDropdown","on","scopedSlots","_u","fn","proxy","$event","stopPropagation","job","stages","arrowStyles","DownstreamPipelines","GlIcon","PipelineStages","downstreamPipelines","pipelineStages","upstreamPipeline","formattedDownstreamPipelines","map","p","details","path","convertToGraphQLId","TYPENAME_CI_PIPELINE","status","formattedStages","s","TYPENAME_CI_STAGE","icon","hasDownstreamPipelines","latestDownstreamPipelines","hasUpstreamPipeline","_this$upstreamPipelin","keepLatestDownstreamPipelines","upstreamPipelineStatus","_this$upstreamPipelin2","_this$upstreamPipelin3","upstreamTooltipText","_this$upstreamPipelin4","_this$upstreamPipelin5","class","remainingTime","formatTime","remainingTimeIntervalId","startRemainingTimeInterval","beforeDestroy","clearInterval","isDelayedJob","_this$job","_this$job2","scheduled","scheduledAt","scheduledTime","scheduled_at","watch","_this","updateRemainingTime","setInterval","remainingMilliseconds","calculateRemainingMilliseconds","forwardDeploymentFailureModalId","BUTTON_TOOLTIP_RETRY","BUTTON_TOOLTIP_CANCEL","BUTTON_TOOLTIP_DELETE","FILTER_TAG_IDENTIFIER","JOB_GRAPHQL_ERRORS","jobMutationErrorText","jobQueryErrorText","ICONS","TAG","MR","BRANCH","RETRY","SUCCESS","SUCCESS_STATUS","PASSED_STATUS","MANUAL_STATUS","PIPELINE_ID_KEY","PIPELINE_IID_KEY","RAW_TEXT_WARNING","TRACKING_CATEGORIES","table","tabs","search","failed","tests","listbox","PIPELINE_POLL_INTERVAL_BACKOFF","FOUR_MINUTES_IN_MS","NETWORK_STATUS_READY","iconSize","Number","component","confirmationText","actionCancel","text","GlModal","model","prop","event","customMessage","visible","jobName","modalText","confirmButton","errors","cancelJob","playJob","retryJob","unscheduleJob","JOB_ACTIONS","cancel","dataName","mutation","cancelJobMutation","play","playJobMutation","retry","retryJobMutation","unscheduleJobMutation","JobActionModal","jobId","jobAction","showConfirmationModal","actionType","hasConfirmationModal","_this$jobAction","confirmationMessage","onActionButtonClick","executeJobAction","mutate","Error","join","JobActionButton","preventDefault","apply","arguments","callback","$$v","JobNameComponent","GlDisclosureDropdownItem","mixins","delayedJobMixin","hasJobAction","_this$status","action","_this$status2","href","detailsPath","tooltipText","_this$status3","statusTooltip","capitalizeFirstCharacter"],"mappings":"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","file":"104.fb1c1a00.chunk.js","sourcesContent":["\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"playPipelineMiniGraphJob\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CiProcessableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"jobPlay\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"job\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Job\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":182}};\n    doc.loc.source = {\"body\":\"#import \\\"../fragments/job.fragment.graphql\\\"\\n\\nmutation playPipelineMiniGraphJob($id: CiProcessableID!) {\\n  jobPlay(input: { id: $id }) {\\n    job {\\n      ...Job\\n    }\\n    errors\\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(\"../fragments/job.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[\"playPipelineMiniGraphJob\"] = oneQuery(doc, \"playPipelineMiniGraphJob\");\n        \n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"unschedulePipelineMiniGraphJob\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CiBuildID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"jobUnschedule\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"job\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Job\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":188}};\n    doc.loc.source = {\"body\":\"#import \\\"../fragments/job.fragment.graphql\\\"\\n\\nmutation unschedulePipelineMiniGraphJob($id: CiBuildID!) {\\n  jobUnschedule(input: { id: $id }) {\\n    job {\\n      ...Job\\n    }\\n    errors\\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(\"../fragments/job.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[\"unschedulePipelineMiniGraphJob\"] = oneQuery(doc, \"unschedulePipelineMiniGraphJob\");\n        \n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getPipelineStageJobs\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CiStageID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ciPipelineStage\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"jobs\"},\"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\":\"detailedStatus\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"action\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confirmationMessage\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"icon\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"detailsPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasDetails\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"icon\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tooltip\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"scheduled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"scheduledAt\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":459}};\n    doc.loc.source = {\"body\":\"query getPipelineStageJobs($id: CiStageID!) {\\n  ciPipelineStage(id: $id) {\\n    id\\n    jobs {\\n      nodes {\\n        id\\n        detailedStatus {\\n          id\\n          action {\\n            id\\n            confirmationMessage\\n            icon\\n            path\\n            title\\n          }\\n          detailsPath\\n          group\\n          hasDetails\\n          icon\\n          tooltip\\n        }\\n        name\\n        scheduled\\n        scheduledAt\\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[\"getPipelineStageJobs\"] = oneQuery(doc, \"getPipelineStageJobs\");\n        \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"data-testid\":\"pipeline-mini-graph\"}},[(_vm.hasUpstreamPipeline)?_c('ci-icon',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",modifiers:{\"hover\":true}}],staticClass:\"gl-align-middle\",attrs:{\"title\":_vm.upstreamTooltipText,\"aria-label\":_vm.upstreamTooltipText,\"status\":_vm.upstreamPipelineStatus,\"show-tooltip\":false,\"data-testid\":\"pipeline-mini-graph-upstream\"}}):_vm._e(),_vm._v(\" \"),(_vm.hasUpstreamPipeline)?_c('gl-icon',{class:_vm.$options.arrowStyles,attrs:{\"name\":\"arrow-right\",\"data-testid\":\"upstream-arrow-icon\",\"variant\":\"subtle\"}}):_vm._e(),_vm._v(\" \"),_c('pipeline-stages',{attrs:{\"is-merge-train\":_vm.isMergeTrain,\"stages\":_vm.formattedStages},on:{\"jobActionExecuted\":function($event){return _vm.$emit('jobActionExecuted')},\"miniGraphStageClick\":function($event){return _vm.$emit('miniGraphStageClick')}}}),_vm._v(\" \"),(_vm.hasDownstreamPipelines)?_c('gl-icon',{class:_vm.$options.arrowStyles,attrs:{\"name\":\"arrow-right\",\"data-testid\":\"downstream-arrow-icon\",\"variant\":\"subtle\"}}):_vm._e(),_vm._v(\" \"),(_vm.hasDownstreamPipelines)?_c('downstream-pipelines',{attrs:{\"pipelines\":_vm.latestDownstreamPipelines,\"pipeline-path\":_vm.pipelinePath,\"data-testid\":\"pipeline-mini-graph-downstream\"}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { convertToGraphQLId } from '~/graphql_shared/utils';\nimport { TYPENAME_CI_PIPELINE, TYPENAME_CI_STAGE } from '~/graphql_shared/constants';\n\nconst hasDetailedStatus = (item) => {\n  return Boolean(item.detailedStatus);\n};\n\n/**\n * Converts REST shaped downstreams to GraphQL shape\n *\n * @param {Array} pipelines - The downstream pipelines passed into legacy pipeline mini graph\n * @returns {Array} - GraphQL shaped downstream pipelines\n */\nexport const normalizeDownstreamPipelines = (pipelines) => {\n  return pipelines.map((p) => {\n    if (hasDetailedStatus(p)) {\n      return p;\n    }\n\n    const { id, details, path, project } = p;\n    return {\n      id: convertToGraphQLId(TYPENAME_CI_PIPELINE, id),\n      detailedStatus: details?.status,\n      path,\n      project: {\n        name: project.name,\n      },\n    };\n  });\n};\n\n/**\n * Converts REST shaped pipeline stages to GraphQL shape\n *\n * @param {Array} stages - The pipeline stages passed into legacy pipeline mini graph\n * @returns {Array} - GraphQL shaped pipeline stages\n */\nexport const normalizeStages = (stages) => {\n  return stages.map((s) => {\n    if (hasDetailedStatus(s)) {\n      return s;\n    }\n\n    const { id, name, status } = s;\n    return {\n      id: convertToGraphQLId(TYPENAME_CI_STAGE, id),\n      detailedStatus: {\n        icon: status.icon,\n        label: status.label,\n        tooltip: status.tooltip,\n      },\n      name,\n    };\n  });\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.pipelines)?_c('span',{staticClass:\"gl-inline-flex gl-gap-2 gl-align-middle\"},[_vm._l((_vm.pipelinesTrimmed),function(pipeline){return _c('ci-icon',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",modifiers:{\"hover\":true}}],key:pipeline.id,attrs:{\"title\":_vm.pipelineTooltipText(pipeline),\"status\":pipeline.detailedStatus,\"show-tooltip\":false,\"data-testid\":\"downstream-pipelines\"}})}),_vm._v(\" \"),(_vm.shouldRenderCounter)?_c('a',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:({ title: _vm.counterTooltipText }),expression:\"{ title: counterTooltipText }\"}],staticClass:\"gl-inline-flex gl-h-6 gl-w-7 gl-items-center gl-justify-center gl-rounded-pill gl-bg-gray-50 gl-text-sm gl-text-subtle gl-no-underline\",attrs:{\"title\":_vm.counterTooltipText,\"href\":_vm.pipelinePath,\"data-testid\":\"downstream-pipeline-counter\"}},[_vm._v(\"\\n    \"+_vm._s(_vm.counterLabel)+\"\\n  \")]):_vm._e()],2):_vm._e()\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!./downstream_pipelines.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!./downstream_pipelines.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective } from '@gitlab/ui';\nimport { sprintf, s__ } from '~/locale';\nimport CiIcon from '~/vue_shared/components/ci_icon/ci_icon.vue';\n/**\n * Renders the downstream portion of the pipeline mini graph.\n */\nexport default {\n  name: 'DownstreamPipelines',\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  components: {\n    CiIcon,\n  },\n  props: {\n    pipelines: {\n      type: Array,\n      required: false,\n      default: () => [],\n    },\n    pipelinePath: {\n      type: String,\n      required: false,\n      default: '',\n    },\n  },\n  data() {\n    return {\n      maxRenderedPipelines: 3,\n    };\n  },\n  computed: {\n    totalPipelineCount() {\n      return this.pipelines.length;\n    },\n    pipelinesTrimmed() {\n      return this.totalPipelineCount > this.maxRenderedPipelines\n        ? this.pipelines.slice(0, this.maxRenderedPipelines)\n        : this.pipelines;\n    },\n    shouldRenderCounter() {\n      return this.pipelines.length > this.maxRenderedPipelines;\n    },\n    counterLabel() {\n      return `+${this.pipelines.length - this.maxRenderedPipelines}`;\n    },\n    counterTooltipText() {\n      return sprintf(s__('Pipelines|%{counterLabel} more downstream pipelines'), {\n        counterLabel: this.counterLabel,\n      });\n    },\n  },\n  methods: {\n    pipelineTooltipText(pipeline) {\n      return `${pipeline?.project?.name} - ${pipeline?.detailedStatus?.label}`;\n    },\n  },\n};\n</script>\n\n<template>\n  <span v-if=\"pipelines\" class=\"gl-inline-flex gl-gap-2 gl-align-middle\">\n    <ci-icon\n      v-for=\"pipeline in pipelinesTrimmed\"\n      :key=\"pipeline.id\"\n      v-gl-tooltip.hover\n      :title=\"pipelineTooltipText(pipeline)\"\n      :status=\"pipeline.detailedStatus\"\n      :show-tooltip=\"false\"\n      data-testid=\"downstream-pipelines\"\n    />\n\n    <a\n      v-if=\"shouldRenderCounter\"\n      v-gl-tooltip=\"{ title: counterTooltipText }\"\n      :title=\"counterTooltipText\"\n      :href=\"pipelinePath\"\n      class=\"gl-inline-flex gl-h-6 gl-w-7 gl-items-center gl-justify-center gl-rounded-pill gl-bg-gray-50 gl-text-sm gl-text-subtle gl-no-underline\"\n      data-testid=\"downstream-pipeline-counter\"\n    >\n      {{ counterLabel }}\n    </a>\n  </span>\n</template>\n","import { render, staticRenderFns } from \"./downstream_pipelines.vue?vue&type=template&id=f55fafbe\"\nimport script from \"./downstream_pipelines.vue?vue&type=script&lang=js\"\nexport * from \"./downstream_pipelines.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!./pipeline_stage_dropdown.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!./pipeline_stage_dropdown.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlDisclosureDropdown, GlLoadingIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport { s__, __, sprintf } from '~/locale';\nimport { reportToSentry } from '~/ci/utils';\nimport CiIcon from '~/vue_shared/components/ci_icon/ci_icon.vue';\nimport { getQueryHeaders, toggleQueryPollingByVisibility } from '~/ci/pipeline_details/graph/utils';\nimport { graphqlEtagStagePath } from '~/ci/pipeline_details/utils';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { PIPELINE_POLL_INTERVAL_DEFAULT } from '~/ci/constants';\nimport JobDropdownItem from '~/ci/common/private/job_dropdown_item.vue';\nimport getPipelineStageJobsQuery from './graphql/queries/get_pipeline_stage_jobs.query.graphql';\n\nexport default {\n  name: 'PipelineStageDropdown',\n  i18n: {\n    loadingText: __('Loading...'),\n    mergeTrainMessage: s__('Pipeline|Merge train pipeline jobs can not be retried'),\n    stage: __('Stage'),\n    stageJobsFetchError: __('There was a problem fetching the pipeline stage jobs.'),\n    viewStageLabel: __('View Stage: %{title}'),\n  },\n  components: {\n    CiIcon,\n    GlButton,\n    GlDisclosureDropdown,\n    GlLoadingIcon,\n    JobDropdownItem,\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  props: {\n    isMergeTrain: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    stage: {\n      type: Object,\n      required: true,\n    },\n  },\n  emits: ['jobActionExecuted', 'miniGraphStageClick'],\n  data() {\n    return {\n      isDropdownOpen: false,\n      stageJobs: [],\n    };\n  },\n  apollo: {\n    stageJobs: {\n      context() {\n        return getQueryHeaders(this.graphqlEtag);\n      },\n      query: getPipelineStageJobsQuery,\n      variables() {\n        return {\n          id: this.stage.id,\n        };\n      },\n      skip() {\n        return !this.isDropdownOpen;\n      },\n      pollInterval: PIPELINE_POLL_INTERVAL_DEFAULT,\n      update(data) {\n        return data?.ciPipelineStage?.jobs?.nodes || [];\n      },\n      error(error) {\n        createAlert({ message: this.$options.i18n.stageJobsFetchError });\n        reportToSentry(this.$options.name, error);\n      },\n    },\n  },\n  computed: {\n    dropdownHeaderText() {\n      return `${this.$options.i18n.stage}: ${this.stage.name}`;\n    },\n    dropdownTooltipTitle() {\n      return this.isDropdownOpen ? '' : `${this.stage.name}: ${this.stage.detailedStatus.tooltip}`;\n    },\n    graphqlEtag() {\n      return graphqlEtagStagePath('/api/graphql', getIdFromGraphQLId(this.stage.id));\n    },\n    isLoading() {\n      return this.$apollo.queries.stageJobs.loading;\n    },\n  },\n  mounted() {\n    toggleQueryPollingByVisibility(this.$apollo.queries.stageJobs);\n  },\n  methods: {\n    onHideDropdown() {\n      this.isDropdownOpen = false;\n      this.$apollo.queries.stageJobs.stopPolling();\n    },\n    onShowDropdown() {\n      this.isDropdownOpen = true;\n      this.$apollo.queries.stageJobs.startPolling(PIPELINE_POLL_INTERVAL_DEFAULT);\n\n      // used for tracking in the pipeline table\n      this.$emit('miniGraphStageClick');\n    },\n    stageAriaLabel(title) {\n      return sprintf(this.$options.i18n.viewStageLabel, { title });\n    },\n  },\n};\n</script>\n\n<template>\n  <gl-disclosure-dropdown\n    data-testid=\"pipeline-mini-graph-dropdown\"\n    :aria-label=\"stageAriaLabel(stage.name)\"\n    fluid-width\n    @hidden=\"onHideDropdown\"\n    @shown=\"onShowDropdown\"\n  >\n    <template #toggle>\n      <gl-button\n        v-gl-tooltip.hover=\"dropdownTooltipTitle\"\n        data-testid=\"pipeline-mini-graph-dropdown-toggle\"\n        :title=\"dropdownTooltipTitle\"\n        class=\"!gl-rounded-full\"\n        variant=\"link\"\n      >\n        <ci-icon :status=\"stage.detailedStatus\" :show-tooltip=\"false\" :use-link=\"false\" />\n      </gl-button>\n    </template>\n\n    <template #header>\n      <div\n        data-testid=\"pipeline-stage-dropdown-menu-title\"\n        class=\"gl-flex gl-min-h-8 gl-items-center gl-border-b-1 gl-border-b-dropdown !gl-p-4 gl-text-sm gl-font-bold gl-leading-1 gl-border-b-solid\"\n      >\n        <span>{{ dropdownHeaderText }}</span>\n      </div>\n    </template>\n\n    <div v-if=\"isLoading\" class=\"gl-flex gl-gap-3 gl-px-4 gl-py-3\">\n      <gl-loading-icon size=\"sm\" />\n      <span class=\"gl-leading-normal\">{{ $options.i18n.loadingText }}</span>\n    </div>\n    <ul\n      v-else\n      class=\"gl-m-0 gl-w-34 gl-overflow-y-auto gl-p-0\"\n      data-testid=\"pipeline-mini-graph-dropdown-menu-list\"\n      @click.stop\n    >\n      <job-dropdown-item\n        v-for=\"job in stageJobs\"\n        :key=\"job.id\"\n        :dropdown-length=\"stageJobs.length\"\n        :job=\"job\"\n        @jobActionExecuted=\"$emit('jobActionExecuted')\"\n      />\n    </ul>\n\n    <template #footer>\n      <div\n        v-if=\"!isLoading && isMergeTrain\"\n        class=\"gl-border-t gl-px-4 gl-py-3 gl-text-sm gl-text-subtle\"\n        data-testid=\"merge-train-message\"\n      >\n        {{ $options.i18n.mergeTrainMessage }}\n      </div>\n    </template>\n  </gl-disclosure-dropdown>\n</template>\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!./pipeline_stages.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!./pipeline_stages.vue?vue&type=script&lang=js\"","<script>\nimport PipelineStageDropdown from './pipeline_stage_dropdown.vue';\n/**\n * Renders the pipeline stages portion of the pipeline mini graph.\n */\nexport default {\n  name: 'PipelineStages',\n  components: {\n    PipelineStageDropdown,\n  },\n  props: {\n    isMergeTrain: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    stages: {\n      type: Array,\n      required: true,\n    },\n  },\n  emits: ['jobActionExecuted', 'miniGraphStageClick'],\n};\n</script>\n<template>\n  <div class=\"gl-inline gl-align-middle\">\n    <div\n      v-for=\"stage in stages\"\n      :key=\"stage.id\"\n      class=\"pipeline-mini-graph-stage-container dropdown gl-my-1 gl-mr-2 gl-inline-flex gl-align-middle\"\n    >\n      <pipeline-stage-dropdown\n        :stage=\"stage\"\n        :is-merge-train=\"isMergeTrain\"\n        @jobActionExecuted=\"$emit('jobActionExecuted')\"\n        @miniGraphStageClick=\"$emit('miniGraphStageClick')\"\n      />\n    </div>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./pipeline_stage_dropdown.vue?vue&type=template&id=438e18a5\"\nimport script from \"./pipeline_stage_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./pipeline_stage_dropdown.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-disclosure-dropdown',{attrs:{\"data-testid\":\"pipeline-mini-graph-dropdown\",\"aria-label\":_vm.stageAriaLabel(_vm.stage.name),\"fluid-width\":\"\"},on:{\"hidden\":_vm.onHideDropdown,\"shown\":_vm.onShowDropdown},scopedSlots:_vm._u([{key:\"toggle\",fn:function(){return [_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",value:(_vm.dropdownTooltipTitle),expression:\"dropdownTooltipTitle\",modifiers:{\"hover\":true}}],staticClass:\"!gl-rounded-full\",attrs:{\"data-testid\":\"pipeline-mini-graph-dropdown-toggle\",\"title\":_vm.dropdownTooltipTitle,\"variant\":\"link\"}},[_c('ci-icon',{attrs:{\"status\":_vm.stage.detailedStatus,\"show-tooltip\":false,\"use-link\":false}})],1)]},proxy:true},{key:\"header\",fn:function(){return [_c('div',{staticClass:\"gl-flex gl-min-h-8 gl-items-center gl-border-b-1 gl-border-b-dropdown !gl-p-4 gl-text-sm gl-font-bold gl-leading-1 gl-border-b-solid\",attrs:{\"data-testid\":\"pipeline-stage-dropdown-menu-title\"}},[_c('span',[_vm._v(_vm._s(_vm.dropdownHeaderText))])])]},proxy:true},{key:\"footer\",fn:function(){return [(!_vm.isLoading && _vm.isMergeTrain)?_c('div',{staticClass:\"gl-border-t gl-px-4 gl-py-3 gl-text-sm gl-text-subtle\",attrs:{\"data-testid\":\"merge-train-message\"}},[_vm._v(\"\\n      \"+_vm._s(_vm.$options.i18n.mergeTrainMessage)+\"\\n    \")]):_vm._e()]},proxy:true}])},[_vm._v(\" \"),_vm._v(\" \"),(_vm.isLoading)?_c('div',{staticClass:\"gl-flex gl-gap-3 gl-px-4 gl-py-3\"},[_c('gl-loading-icon',{attrs:{\"size\":\"sm\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-leading-normal\"},[_vm._v(_vm._s(_vm.$options.i18n.loadingText))])],1):_c('ul',{staticClass:\"gl-m-0 gl-w-34 gl-overflow-y-auto gl-p-0\",attrs:{\"data-testid\":\"pipeline-mini-graph-dropdown-menu-list\"},on:{\"click\":function($event){$event.stopPropagation();}}},_vm._l((_vm.stageJobs),function(job){return _c('job-dropdown-item',{key:job.id,attrs:{\"dropdown-length\":_vm.stageJobs.length,\"job\":job},on:{\"jobActionExecuted\":function($event){return _vm.$emit('jobActionExecuted')}}})}),1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./pipeline_stages.vue?vue&type=template&id=6672dfcb\"\nimport script from \"./pipeline_stages.vue?vue&type=script&lang=js\"\nexport * from \"./pipeline_stages.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-inline gl-align-middle\"},_vm._l((_vm.stages),function(stage){return _c('div',{key:stage.id,staticClass:\"pipeline-mini-graph-stage-container dropdown gl-my-1 gl-mr-2 gl-inline-flex gl-align-middle\"},[_c('pipeline-stage-dropdown',{attrs:{\"stage\":stage,\"is-merge-train\":_vm.isMergeTrain},on:{\"jobActionExecuted\":function($event){return _vm.$emit('jobActionExecuted')},\"miniGraphStageClick\":function($event){return _vm.$emit('miniGraphStageClick')}}})],1)}),0)\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!./pipeline_mini_graph.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!./pipeline_mini_graph.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { keepLatestDownstreamPipelines } from '~/ci/pipeline_details/utils/parsing_utils';\nimport CiIcon from '~/vue_shared/components/ci_icon/ci_icon.vue';\nimport { normalizeDownstreamPipelines, normalizeStages } from './utils/data_utils';\nimport DownstreamPipelines from './downstream_pipelines.vue';\nimport PipelineStages from './pipeline_stages.vue';\n/**\n * Renders the pipeline mini graph.\n * All REST data passed in is formatted to GraphQL.\n */\nexport default {\n  name: 'PipelineMiniGraph',\n  arrowStyles: ['arrow-icon gl-inline-block gl-mx-1 gl-text-subtle !gl-align-middle'],\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  components: {\n    CiIcon,\n    DownstreamPipelines,\n    GlIcon,\n    PipelineStages,\n  },\n  props: {\n    downstreamPipelines: {\n      type: Array,\n      required: false,\n      default: () => [],\n    },\n    isMergeTrain: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    pipelinePath: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    pipelineStages: {\n      type: Array,\n      required: true,\n    },\n    upstreamPipeline: {\n      type: Object,\n      required: false,\n      default: () => {},\n    },\n  },\n  emits: ['jobActionExecuted', 'miniGraphStageClick'],\n  computed: {\n    formattedDownstreamPipelines() {\n      return normalizeDownstreamPipelines(this.downstreamPipelines);\n    },\n    formattedStages() {\n      return normalizeStages(this.pipelineStages);\n    },\n    hasDownstreamPipelines() {\n      return Boolean(this.latestDownstreamPipelines.length);\n    },\n    hasUpstreamPipeline() {\n      return this.upstreamPipeline?.id;\n    },\n    latestDownstreamPipelines() {\n      return keepLatestDownstreamPipelines(this.formattedDownstreamPipelines);\n    },\n    upstreamPipelineStatus() {\n      return this.upstreamPipeline?.detailedStatus || this.upstreamPipeline?.details?.status;\n    },\n    upstreamTooltipText() {\n      return `${this.upstreamPipeline?.project?.name} - ${this.upstreamPipelineStatus?.label}`;\n    },\n  },\n};\n</script>\n\n<template>\n  <div data-testid=\"pipeline-mini-graph\">\n    <ci-icon\n      v-if=\"hasUpstreamPipeline\"\n      v-gl-tooltip.hover\n      :title=\"upstreamTooltipText\"\n      :aria-label=\"upstreamTooltipText\"\n      :status=\"upstreamPipelineStatus\"\n      :show-tooltip=\"false\"\n      class=\"gl-align-middle\"\n      data-testid=\"pipeline-mini-graph-upstream\"\n    />\n    <gl-icon\n      v-if=\"hasUpstreamPipeline\"\n      :class=\"$options.arrowStyles\"\n      name=\"arrow-right\"\n      data-testid=\"upstream-arrow-icon\"\n      variant=\"subtle\"\n    />\n    <pipeline-stages\n      :is-merge-train=\"isMergeTrain\"\n      :stages=\"formattedStages\"\n      @jobActionExecuted=\"$emit('jobActionExecuted')\"\n      @miniGraphStageClick=\"$emit('miniGraphStageClick')\"\n    />\n    <gl-icon\n      v-if=\"hasDownstreamPipelines\"\n      :class=\"$options.arrowStyles\"\n      name=\"arrow-right\"\n      data-testid=\"downstream-arrow-icon\"\n      variant=\"subtle\"\n    />\n    <downstream-pipelines\n      v-if=\"hasDownstreamPipelines\"\n      :pipelines=\"latestDownstreamPipelines\"\n      :pipeline-path=\"pipelinePath\"\n      data-testid=\"pipeline-mini-graph-downstream\"\n    />\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./pipeline_mini_graph.vue?vue&type=template&id=e9abb0ce\"\nimport script from \"./pipeline_mini_graph.vue?vue&type=script&lang=js\"\nexport * from \"./pipeline_mini_graph.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\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"cancelPipelineMiniGraphJob\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CiBuildID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"jobCancel\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"job\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Job\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":180}};\n    doc.loc.source = {\"body\":\"#import \\\"../fragments/job.fragment.graphql\\\"\\n\\nmutation cancelPipelineMiniGraphJob($id: CiBuildID!) {\\n  jobCancel(input: { id: $id }) {\\n    job {\\n      ...Job\\n    }\\n    errors\\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(\"../fragments/job.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[\"cancelPipelineMiniGraphJob\"] = oneQuery(doc, \"cancelPipelineMiniGraphJob\");\n        \n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"Job\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CiJob\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"detailedStatus\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"action\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confirmationMessage\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"icon\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":149}};\n    doc.loc.source = {\"body\":\"fragment Job on CiJob {\\n  id\\n  detailedStatus {\\n    id\\n    action {\\n      id\\n      confirmationMessage\\n      icon\\n      path\\n      title\\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[\"Job\"] = oneQuery(doc, \"Job\");\n        \n","import { calculateRemainingMilliseconds, formatTime } from '~/lib/utils/datetime_utility';\n\nexport default {\n  data() {\n    return {\n      remainingTime: formatTime(0),\n      remainingTimeIntervalId: null,\n    };\n  },\n\n  mounted() {\n    this.startRemainingTimeInterval();\n  },\n\n  beforeDestroy() {\n    if (this.remainingTimeIntervalId) {\n      clearInterval(this.remainingTimeIntervalId);\n    }\n  },\n\n  computed: {\n    isDelayedJob() {\n      return this.job?.scheduled || this.job?.scheduledAt;\n    },\n    scheduledTime() {\n      return this.job.scheduled_at || this.job.scheduledAt;\n    },\n  },\n\n  watch: {\n    isDelayedJob() {\n      this.startRemainingTimeInterval();\n    },\n  },\n\n  methods: {\n    startRemainingTimeInterval() {\n      if (this.remainingTimeIntervalId) {\n        clearInterval(this.remainingTimeIntervalId);\n      }\n\n      if (this.isDelayedJob) {\n        this.updateRemainingTime();\n        this.remainingTimeIntervalId = setInterval(() => this.updateRemainingTime(), 1000);\n      }\n    },\n\n    updateRemainingTime() {\n      const remainingMilliseconds = calculateRemainingMilliseconds(this.scheduledTime);\n      this.remainingTime = formatTime(remainingMilliseconds);\n    },\n  },\n};\n","import { __, s__ } from '~/locale';\n\nexport const forwardDeploymentFailureModalId = 'forward-deployment-failure';\n\nexport const BUTTON_TOOLTIP_RETRY = __('Retry all failed or cancelled jobs');\nexport const BUTTON_TOOLTIP_CANCEL = __('Cancel the running pipeline');\nexport const BUTTON_TOOLTIP_DELETE = __('Delete the pipeline');\n\nexport const FILTER_TAG_IDENTIFIER = 'tag';\n\nexport const JOB_GRAPHQL_ERRORS = {\n  jobMutationErrorText: __('There was an error running the job. Please try again.'),\n  jobQueryErrorText: __('There was an error fetching the job.'),\n};\n\nexport const ICONS = {\n  TAG: 'tag',\n  MR: 'merge-request',\n  BRANCH: 'branch',\n  RETRY: 'retry',\n  SUCCESS: 'success',\n};\n\nexport const SUCCESS_STATUS = 'SUCCESS';\nexport const PASSED_STATUS = 'passed';\nexport const MANUAL_STATUS = 'manual';\n\nexport const PIPELINE_ID_KEY = 'id';\nexport const PIPELINE_IID_KEY = 'iid';\n\nexport const RAW_TEXT_WARNING = s__(\n  'Pipeline|Raw text search is not currently supported. Please use the available search tokens.',\n);\n\nexport const TRACKING_CATEGORIES = {\n  table: 'pipelines_table_component',\n  tabs: 'pipelines_filter_tabs',\n  search: 'pipelines_filtered_search',\n  failed: 'pipeline_failed_jobs_tab',\n  tests: 'pipeline_tests_tab',\n  listbox: 'pipeline_id_iid_listbox',\n};\n\n// For pipeline polling\nexport const PIPELINE_POLL_INTERVAL_DEFAULT = 1000 * 8;\nexport const PIPELINE_POLL_INTERVAL_BACKOFF = 1.2;\nexport const FOUR_MINUTES_IN_MS = 1000 * 60 * 4;\n\nexport const NETWORK_STATUS_READY = 7;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:\"gl-flex gl-items-center\"},[_c('ci-icon',{staticClass:\"gl-leading-0\",attrs:{\"size\":_vm.iconSize,\"status\":_vm.status,\"show-tooltip\":false,\"use-link\":false}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-line-clamp-2 gl-pl-3 gl-wrap-anywhere\",attrs:{\"title\":_vm.name}},[_vm._v(\"\\n    \"+_vm._s(_vm.name)+\"\\n  \")])],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!./job_name_component.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!./job_name_component.vue?vue&type=script&lang=js\"","<script>\nimport CiIcon from '~/vue_shared/components/ci_icon/ci_icon.vue';\n\n/**\n * Component that renders both the CI icon status and the job name.\n * Used in\n *  - Badge component\n *  - Dropdown badge components\n */\nexport default {\n  components: {\n    CiIcon,\n  },\n  props: {\n    name: {\n      type: String,\n      required: true,\n    },\n    status: {\n      type: Object,\n      required: true,\n    },\n    iconSize: {\n      type: Number,\n      required: false,\n      default: 16,\n    },\n  },\n};\n</script>\n<template>\n  <span class=\"gl-flex gl-items-center\">\n    <ci-icon\n      :size=\"iconSize\"\n      :status=\"status\"\n      :show-tooltip=\"false\"\n      :use-link=\"false\"\n      class=\"gl-leading-0\"\n    />\n    <span class=\"gl-line-clamp-2 gl-pl-3 gl-wrap-anywhere\" :title=\"name\">\n      {{ name }}\n    </span>\n  </span>\n</template>\n","import { render, staticRenderFns } from \"./job_name_component.vue?vue&type=template&id=10612be2\"\nimport script from \"./job_name_component.vue?vue&type=script&lang=js\"\nexport * from \"./job_name_component.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\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"retryPipelineMiniGraphJob\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CiProcessableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"jobRetry\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"job\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Job\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":184}};\n    doc.loc.source = {\"body\":\"#import \\\"../fragments/job.fragment.graphql\\\"\\n\\nmutation retryPipelineMiniGraphJob($id: CiProcessableID!) {\\n  jobRetry(input: { id: $id }) {\\n    job {\\n      ...Job\\n    }\\n    errors\\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(\"../fragments/job.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[\"retryPipelineMiniGraphJob\"] = oneQuery(doc, \"retryPipelineMiniGraphJob\");\n        \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-disclosure-dropdown-item',{staticClass:\"ci-job-component\",attrs:{\"item\":_vm.item,\"data-testid\":\"ci-job-item\"},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('div',{staticClass:\"-gl-my-2 gl-flex gl-items-center gl-justify-between\"},[_c('job-name-component',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.viewport.left\",modifiers:{\"viewport\":true,\"left\":true}}],attrs:{\"title\":_vm.tooltipText,\"name\":_vm.job.name,\"status\":_vm.status,\"data-testid\":\"job-name\"}}),_vm._v(\" \"),(_vm.hasJobAction)?_c('job-action-button',{staticClass:\"gl-ml-6\",attrs:{\"job-id\":_vm.job.id,\"job-action\":_vm.status.action,\"job-name\":_vm.job.name},on:{\"jobActionExecuted\":function($event){return _vm.$emit('jobActionExecuted')}}}):_vm._e()],1)]},proxy:true}])})\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!./job_action_modal.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!./job_action_modal.vue?vue&type=script&lang=js\"","<script>\nimport { GlModal } from '@gitlab/ui';\nimport { s__, __, sprintf } from '~/locale';\n\nexport default {\n  name: 'JobActionModal',\n  i18n: {\n    title: s__('PipelineGraph|Are you sure you want to run %{jobName}?'),\n    confirmationText: s__('PipelineGraph|Do you want to continue?'),\n    actionCancel: { text: __('Cancel') },\n  },\n  components: {\n    GlModal,\n  },\n  model: {\n    prop: 'visible',\n    event: 'change',\n  },\n  props: {\n    customMessage: {\n      type: String,\n      required: true,\n    },\n    visible: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    jobName: {\n      type: String,\n      required: true,\n    },\n  },\n  computed: {\n    modalText() {\n      return {\n        confirmButton: {\n          text: sprintf(__('Yes, run %{jobName}'), {\n            jobName: this.jobName,\n          }),\n        },\n        message: sprintf(__('Custom confirmation message: %{message}'), {\n          message: this.customMessage,\n        }),\n        title: sprintf(this.$options.i18n.title, {\n          jobName: this.jobName,\n        }),\n      };\n    },\n  },\n};\n</script>\n\n<template>\n  <gl-modal\n    modal-id=\"job-action-modal\"\n    :action-cancel=\"$options.i18n.actionCancel\"\n    :action-primary=\"modalText.confirmButton\"\n    :title=\"modalText.title\"\n    :visible=\"visible\"\n    @primary=\"$emit('confirm')\"\n    @change=\"$emit('change', $event)\"\n  >\n    <div>\n      <p>{{ modalText.message }}</p>\n      <span>{{ $options.i18n.confirmationText }}</span>\n    </div>\n  </gl-modal>\n</template>\n","import { render, staticRenderFns } from \"./job_action_modal.vue?vue&type=template&id=0793f7d2\"\nimport script from \"./job_action_modal.vue?vue&type=script&lang=js\"\nexport * from \"./job_action_modal.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-modal',{attrs:{\"modal-id\":\"job-action-modal\",\"action-cancel\":_vm.$options.i18n.actionCancel,\"action-primary\":_vm.modalText.confirmButton,\"title\":_vm.modalText.title,\"visible\":_vm.visible},on:{\"primary\":function($event){return _vm.$emit('confirm')},\"change\":function($event){return _vm.$emit('change', $event)}}},[_c('div',[_c('p',[_vm._v(_vm._s(_vm.modalText.message))]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.$options.i18n.confirmationText))])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlButton, GlIcon, GlLoadingIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport { s__ } from '~/locale';\nimport { reportToSentry } from '~/ci/utils';\nimport cancelJobMutation from '~/ci/pipeline_mini_graph/graphql/mutations/job_cancel.mutation.graphql';\nimport playJobMutation from '~/ci/pipeline_mini_graph/graphql/mutations/job_play.mutation.graphql';\nimport retryJobMutation from '~/ci/pipeline_mini_graph/graphql/mutations/job_retry.mutation.graphql';\nimport unscheduleJobMutation from '~/ci/pipeline_mini_graph/graphql/mutations/job_unschedule.mutation.graphql';\nimport JobActionModal from './job_action_modal.vue';\n\nexport const i18n = {\n  errors: {\n    cancelJob: s__('Pipeline|There was a problem canceling the job.'),\n    playJob: s__('Pipeline|There was a problem running the job.'),\n    retryJob: s__('Pipeline|There was a problem running the job again.'),\n    unscheduleJob: s__('Pipeline|There was a problem unscheduling the job.'),\n  },\n};\n\nexport default {\n  name: 'JobActionButton',\n  JOB_ACTIONS: {\n    cancel: {\n      dataName: 'jobCancel',\n      error: i18n.errors.cancelJob,\n      mutation: cancelJobMutation,\n    },\n    play: {\n      dataName: 'jobPlay',\n      error: i18n.errors.playJob,\n      mutation: playJobMutation,\n    },\n    retry: {\n      dataName: 'jobRetry',\n      error: i18n.errors.retryJob,\n      mutation: retryJobMutation,\n    },\n    'time-out': {\n      dataName: 'jobUnschedule',\n      error: i18n.errors.unscheduleJob,\n      mutation: unscheduleJobMutation,\n    },\n  },\n  i18n,\n  components: {\n    GlButton,\n    GlIcon,\n    GlLoadingIcon,\n    JobActionModal,\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  props: {\n    jobId: {\n      type: String,\n      required: true,\n    },\n    jobAction: {\n      type: Object,\n      required: true,\n    },\n    jobName: {\n      type: String,\n      required: true,\n    },\n  },\n  emits: ['jobActionExecuted'],\n  data() {\n    return {\n      isLoading: false,\n      showConfirmationModal: false,\n    };\n  },\n  computed: {\n    actionType() {\n      return this.jobAction.icon;\n    },\n    hasConfirmationModal() {\n      return this.jobAction?.confirmationMessage !== null;\n    },\n  },\n  methods: {\n    onActionButtonClick() {\n      if (this.hasConfirmationModal) {\n        this.showConfirmationModal = true;\n      } else {\n        this.executeJobAction();\n      }\n    },\n    async executeJobAction() {\n      try {\n        this.isLoading = true;\n        const {\n          data: {\n            [this.$options.JOB_ACTIONS[this.actionType].dataName]: { errors },\n          },\n        } = await this.$apollo.mutate({\n          mutation: this.$options.JOB_ACTIONS[this.actionType].mutation,\n          variables: { id: this.jobId },\n        });\n        if (errors.length) {\n          reportToSentry(this.$options.name, new Error(errors.join(', ')));\n        }\n      } catch (error) {\n        createAlert({ message: this.$options.JOB_ACTIONS[this.actionType].error });\n        reportToSentry(this.$options.name, error);\n      } finally {\n        this.isLoading = false;\n        this.$emit('jobActionExecuted');\n      }\n    },\n  },\n};\n</script>\n\n<template>\n  <div>\n    <gl-button\n      v-gl-tooltip.viewport.left\n      :title=\"jobAction.title\"\n      :aria-label=\"jobAction.title\"\n      :disabled=\"isLoading\"\n      size=\"small\"\n      class=\"gl-h-6 gl-w-6 !gl-rounded-full !gl-p-0\"\n      data-testid=\"ci-action-button\"\n      @click.prevent=\"onActionButtonClick\"\n    >\n      <gl-loading-icon v-if=\"isLoading\" size=\"sm\" class=\"gl-m-2\" />\n      <gl-icon v-else :name=\"jobAction.icon\" :size=\"12\" />\n    </gl-button>\n    <job-action-modal\n      v-if=\"hasConfirmationModal\"\n      v-model=\"showConfirmationModal\"\n      :job-name=\"jobName\"\n      :custom-message=\"jobAction.confirmationMessage\"\n      @confirm=\"executeJobAction\"\n    />\n  </div>\n</template>\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!./job_action_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!./job_action_button.vue?vue&type=script&lang=js\"","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!./job_dropdown_item.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!./job_dropdown_item.vue?vue&type=script&lang=js\"","<script>\nimport { GlDisclosureDropdownItem, GlTooltipDirective } from '@gitlab/ui';\nimport { sprintf } from '~/locale';\nimport { capitalizeFirstCharacter } from '~/lib/utils/text_utility';\nimport delayedJobMixin from '~/ci/mixins/delayed_job_mixin';\nimport JobActionButton from './job_action_button.vue';\nimport JobNameComponent from './job_name_component.vue';\n\nexport default {\n  name: 'JobDropdownItem',\n  components: {\n    JobActionButton,\n    JobNameComponent,\n    GlDisclosureDropdownItem,\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  mixins: [delayedJobMixin],\n  props: {\n    job: {\n      type: Object,\n      required: true,\n    },\n  },\n  emits: ['jobActionExecuted'],\n  computed: {\n    hasJobAction() {\n      return Boolean(this.status?.action?.id);\n    },\n    item() {\n      return {\n        text: this.job.name,\n        href: this.status?.detailsPath || '',\n      };\n    },\n    status() {\n      return this.job.detailedStatus || this.job.status;\n    },\n    tooltipText() {\n      const statusTooltip = capitalizeFirstCharacter(this.status?.tooltip);\n\n      if (this.isDelayedJob) {\n        return sprintf(statusTooltip, { remainingTime: this.remainingTime });\n      }\n      return statusTooltip;\n    },\n  },\n};\n</script>\n<template>\n  <gl-disclosure-dropdown-item :item=\"item\" class=\"ci-job-component\" data-testid=\"ci-job-item\">\n    <template #list-item>\n      <div class=\"-gl-my-2 gl-flex gl-items-center gl-justify-between\">\n        <job-name-component\n          v-gl-tooltip.viewport.left\n          :title=\"tooltipText\"\n          :name=\"job.name\"\n          :status=\"status\"\n          data-testid=\"job-name\"\n        />\n        <job-action-button\n          v-if=\"hasJobAction\"\n          class=\"gl-ml-6\"\n          :job-id=\"job.id\"\n          :job-action=\"status.action\"\n          :job-name=\"job.name\"\n          @jobActionExecuted=\"$emit('jobActionExecuted')\"\n        />\n      </div>\n    </template>\n  </gl-disclosure-dropdown-item>\n</template>\n","import { render, staticRenderFns } from \"./job_action_button.vue?vue&type=template&id=6a2f3078\"\nimport script from \"./job_action_button.vue?vue&type=script&lang=js\"\nexport * from \"./job_action_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('div',[_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.viewport.left\",modifiers:{\"viewport\":true,\"left\":true}}],staticClass:\"gl-h-6 gl-w-6 !gl-rounded-full !gl-p-0\",attrs:{\"title\":_vm.jobAction.title,\"aria-label\":_vm.jobAction.title,\"disabled\":_vm.isLoading,\"size\":\"small\",\"data-testid\":\"ci-action-button\"},on:{\"click\":function($event){$event.preventDefault();return _vm.onActionButtonClick.apply(null, arguments)}}},[(_vm.isLoading)?_c('gl-loading-icon',{staticClass:\"gl-m-2\",attrs:{\"size\":\"sm\"}}):_c('gl-icon',{attrs:{\"name\":_vm.jobAction.icon,\"size\":12}})],1),_vm._v(\" \"),(_vm.hasConfirmationModal)?_c('job-action-modal',{attrs:{\"job-name\":_vm.jobName,\"custom-message\":_vm.jobAction.confirmationMessage},on:{\"confirm\":_vm.executeJobAction},model:{value:(_vm.showConfirmationModal),callback:function ($$v) {_vm.showConfirmationModal=$$v},expression:\"showConfirmationModal\"}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./job_dropdown_item.vue?vue&type=template&id=2ef1d186\"\nimport script from \"./job_dropdown_item.vue?vue&type=script&lang=js\"\nexport * from \"./job_dropdown_item.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"],"sourceRoot":""}