{"version":3,"sources":["webpack:///./vue_shared/components/user_avatar/user_avatar_image.vue","webpack:///./vue_shared/components/user_avatar/user_avatar_image.vue?5b71","webpack:///vue_shared/components/user_avatar/user_avatar_image.vue","webpack:///./vue_shared/components/user_avatar/user_avatar_image.vue?7c05","webpack:///./ci/common/pipelines_table.vue","webpack:///./ci/pipelines_page/components/failure_widget/failed_job_details.vue","webpack:///./ci/pipelines_page/components/failure_widget/failed_job_details.vue?31be","webpack:///ci/pipelines_page/components/failure_widget/failed_job_details.vue","webpack:///./ci/pipelines_page/components/failure_widget/failed_job_details.vue?d988","webpack:///./ci/pipelines_page/components/failure_widget/constants.js","webpack:///ci/pipelines_page/components/failure_widget/failed_jobs_list.vue","webpack:///./ci/pipelines_page/components/failure_widget/failed_jobs_list.vue?9c11","webpack:///./ci/pipelines_page/components/failure_widget/utils.js","webpack:///./ci/pipelines_page/components/failure_widget/failed_jobs_list.vue?cb03","webpack:///./ci/pipelines_page/components/failure_widget/failed_jobs_list.vue","webpack:///./ci/pipelines_page/components/failure_widget/pipeline_failed_jobs_widget.vue?0d2e","webpack:///ci/pipelines_page/components/failure_widget/pipeline_failed_jobs_widget.vue","webpack:///./ci/pipelines_page/components/failure_widget/pipeline_failed_jobs_widget.vue?68a4","webpack:///./ci/pipelines_page/components/failure_widget/pipeline_failed_jobs_widget.vue","webpack:///ci/pipelines_page/components/pipeline_multi_actions.vue","webpack:///./ci/pipelines_page/components/pipeline_multi_actions.vue?623a","webpack:///./ci/pipelines_page/components/pipeline_multi_actions.vue?1722","webpack:///./ci/pipelines_page/components/pipeline_multi_actions.vue","webpack:///./ci/pipelines_page/components/pipelines_manual_actions.vue?d4f1","webpack:///ci/pipelines_page/components/pipelines_manual_actions.vue","webpack:///./ci/pipelines_page/components/pipelines_manual_actions.vue?785f","webpack:///./ci/pipelines_page/components/pipelines_manual_actions.vue","webpack:///./ci/pipelines_page/components/pipeline_stop_modal.vue?db3f","webpack:///ci/pipelines_page/components/pipeline_stop_modal.vue","webpack:///./ci/pipelines_page/components/pipeline_stop_modal.vue?4659","webpack:///./ci/pipelines_page/components/pipeline_stop_modal.vue","webpack:///./ci/pipelines_page/components/pipeline_operations.vue?848c","webpack:///ci/pipelines_page/components/pipeline_operations.vue","webpack:///./ci/pipelines_page/components/pipeline_operations.vue?6e64","webpack:///./ci/pipelines_page/components/pipeline_operations.vue","webpack:///./ci/pipelines_page/components/pipeline_triggerer.vue?a471","webpack:///ci/pipelines_page/components/pipeline_triggerer.vue","webpack:///./ci/pipelines_page/components/pipeline_triggerer.vue?c90f","webpack:///./ci/pipelines_page/components/pipeline_triggerer.vue","webpack:///./ci/pipelines_page/components/pipeline_labels.vue?3264","webpack:///ci/pipelines_page/components/pipeline_labels.vue","webpack:///./ci/pipelines_page/components/pipeline_labels.vue?f32e","webpack:///./ci/pipelines_page/components/pipeline_labels.vue","webpack:///./ci/pipelines_page/components/pipeline_url.vue?7fa3","webpack:///ci/pipelines_page/components/pipeline_url.vue","webpack:///./ci/pipelines_page/components/pipeline_url.vue?f29a","webpack:///./ci/pipelines_page/components/pipeline_url.vue","webpack:///./ci/pipelines_page/components/time_ago.vue?4957","webpack:///ci/pipelines_page/components/time_ago.vue","webpack:///./ci/pipelines_page/components/time_ago.vue?f528","webpack:///./ci/pipelines_page/components/time_ago.vue","webpack:///./ci/pipelines_page/components/pipeline_status_badge.vue?ebf1","webpack:///ci/pipelines_page/components/pipeline_status_badge.vue","webpack:///./ci/pipelines_page/components/pipeline_status_badge.vue?8e8b","webpack:///./ci/pipelines_page/components/pipeline_status_badge.vue","webpack:///ci/common/pipelines_table.vue","webpack:///./ci/common/pipelines_table.vue?8684","webpack:///./ci/common/pipelines_table.vue?f0ab","webpack:///./ci/jobs_page/graphql/fragments/job.fragment.graphql","webpack:///./ci/pipeline_mini_graph/graphql/mutations/job_play.mutation.graphql","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/scorer.js","webpack:///./ci/pipeline_details/stores/pipelines_store.js","webpack:///./ci/pipeline_mini_graph/graphql/mutations/job_unschedule.mutation.graphql","webpack:///./ci/pipelines_page/graphql/queries/get_pipeline_actions.query.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:///../images/no_avatar.png","webpack:///./ci/pipelines_page/services/pipelines_service.js","webpack:///./ci/pipelines_page/graphql/queries/get_pipeline_failed_jobs.query.graphql","webpack:///./ci/pipeline_mini_graph/graphql/mutations/job_cancel.mutation.graphql","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/fuzzaldrin.js","webpack:///./ci/pipeline_mini_graph/graphql/fragments/job.fragment.graphql","webpack:///./vue_shared/components/pagination/table_pagination.vue","webpack:///./vue_shared/components/pagination/table_pagination.vue?cb6b","webpack:///vue_shared/components/pagination/table_pagination.vue","webpack:///./vue_shared/components/pagination/table_pagination.vue?217e","webpack:///./lib/utils/http_status.js","webpack:///./vue_shared/components/gl_countdown.vue","webpack:///./vue_shared/components/gl_countdown.vue?1908","webpack:///vue_shared/components/gl_countdown.vue","webpack:///./vue_shared/components/gl_countdown.vue?3137","webpack:///./ci/mixins/delayed_job_mixin.js","webpack:///./ci/merge_requests/graphql/mutations/retry_mr_failed_job.mutation.graphql","webpack:///./vue_shared/components/user_avatar/user_avatar_link.vue","webpack:///./vue_shared/components/user_avatar/user_avatar_link.vue?c50c","webpack:///vue_shared/components/user_avatar/user_avatar_link.vue","webpack:///./vue_shared/components/user_avatar/user_avatar_link.vue?d6b5","webpack:///./ci/pipelines_page/constants.js","webpack:///./ci/pipelines_page/graphql/queries/get_pipeline_failed_jobs_count.query.graphql","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/query.js","webpack:///./vue_shared/components/tooltip_on_truncate/tooltip_on_truncate.vue","webpack:///vue_shared/components/tooltip_on_truncate/tooltip_on_truncate.vue","webpack:///./vue_shared/components/tooltip_on_truncate/tooltip_on_truncate.vue?bc46","webpack:///./vue_shared/components/tooltip_on_truncate/tooltip_on_truncate.vue?b534","webpack:///./vue_shared/components/crud_component.vue","webpack:///./vue_shared/components/crud_component.vue?0a0d","webpack:///vue_shared/components/crud_component.vue","webpack:///./vue_shared/components/crud_component.vue?18b8","webpack:///./lib/utils/poll.js","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/pathScorer.js","webpack:///./ci/pipeline_details/graph/constants.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:////build/source/ee/app/assets/javascripts/ci/job_details/components/root_cause_analysis_button.vue","webpack:////build/source/ee/app/assets/javascripts/ci/job_details/components/root_cause_analysis_button.vue?82b2","webpack:///../../../ee/app/assets/javascripts/ci/job_details/components/root_cause_analysis_button.vue","webpack:////build/source/ee/app/assets/javascripts/ci/job_details/components/root_cause_analysis_button.vue?4b80","webpack:///./ci/utils.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/pagination/pagination.js","webpack:///./ci/pipeline_details/mixins/pipelines_mixin.js","webpack:///./ci/pipeline_mini_graph/graphql/mutations/job_retry.mutation.graphql","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/matcher.js","webpack:///./ci/jobs_page/graphql/mutations/job_play.mutation.graphql","webpack:///./commit/pipelines/legacy_pipelines_table_wrapper.vue","webpack:///./commit/pipelines/legacy_pipelines_table_wrapper.vue?706a","webpack:///commit/pipelines/legacy_pipelines_table_wrapper.vue","webpack:///./commit/pipelines/legacy_pipelines_table_wrapper.vue?ed66","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","webpack:///./ci/event_hub.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/table-lite.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/table_lite/table_lite.js","webpack:////build/source/node_modules/fuzzaldrin-plus/lib/filter.js"],"names":["name","components","GlTooltip","GlAvatar","props","lazy","type","Boolean","required","default","imgSrc","String","defaultAvatarUrl","cssClasses","imgAlt","__","size","Number","Object","tooltipText","tooltipPlacement","pseudo","computed","sanitizedSource","baseSrc","indexOf","includes","maximumSize","_isObject","Math","max","values","resultantSrcAttribute","placeholderImage","component","_vm","this","_c","_self","ref","staticClass","class","style","backgroundImage","attrs","undefined","_v","$scopedSlots","$refs","userAvatar","_t","_s","_e","CiIcon","GlButton","GlLink","RootCauseAnalysisButton","directives","GlTooltipDirective","SafeHtml","job","canTroubleshootJob","data","isLoadingAction","canRetryJob","retryable","userPermissions","updateBuild","isBridgeJob","detailedStatus","_this$job","detailsPath","_this$detailedStatus","statusGroup","_this$detailedStatus2","group","kind","BRIDGE_KIND","parsedJobId","getIdFromGraphQLId","id","tooltipErrorText","$options","i18n","cannotRetryTrigger","cannotRetry","sprintf","jobActionTooltipText","jobName","isBuildJob","BUILD_KIND","methods","jobRetry","errors","$apollo","mutate","mutation","RetryMrFailedJobMutation","variables","length","Error","$emit","error","createAlert","message","retryError","cannotReadBuild","s__","retry","stage","retryBtn","rawName","on","$event","stopPropagation","retryJob","apply","arguments","JOB_ID_HEADER","JOB_NAME_HEADER","STAGE_HEADER","GlAlert","GlLoadingIcon","GlSprintf","FailedJobDetails","inject","isMaximumJobLimitReached","pipelineIid","pipelinePath","projectPath","failedJobs","isLoadingMore","apollo","context","getQueryHeaders","graphqlResourceEtag","query","getPipelineFailedJobs","pollInterval","fullPath","update","_data$project","jobs","sort","a","_job$detailedStatus","isFailedJob","sortJobsByStatus","project","pipeline","nodes","result","_data$project2","troubleshootJobWithAi","e","fetchError","variant","graphqlEtagPipelinePath","graphqlPath","isInitialLoading","isLoading","queries","loading","mounted","toggleQueryPollingByVisibility","refetchJobs","$toast","show","retriedJobsSuccess","refetch","columns","text","maximumJobLimitAlert","title","scopedSlots","_u","key","fn","content","_l","col","GlBadge","GlIcon","FailedJobsList","CrudComponent","failedJobsCount","getPipelineFailedJobsCount","_project$pipeline","_project$pipeline2","isPipelineActive","active","count","isExpanded","bodyClasses","failedJobsCountBadge","iconName","watch","startPolling","stopPolling","beforeDestroy","toggleWidget","ariaControlsId","toString","proxy","refetchCount","searchPlaceholder","downloadArtifacts","artifactsFetchErrorMessage","artifactsFetchWarningMessage","emptyArtifactsMessage","GlDisclosureDropdown","GlSearchBoxByType","mixins","Tracking","mixin","artifactsEndpoint","artifactsEndpointPlaceholder","pipelineId","artifacts","hasError","searchQuery","isNewPipeline","hasArtifacts","filteredArtifacts","fuzzaldrinPlus","filter","items","map","path","href","extraAttrs","download","rel","fetchArtifacts","_this","track","label","TRACKING_CATEGORIES","table","oldArtifacts","endpoint","replace","axios","get","then","catch","finally","onDisclosureDropdownShown","onDisclosureDropdownHidden","model","value","callback","$$v","trim","expression","GlCountdown","GlDisclosureDropdownItem","iid","actions","getPipelineActionsQuery","limit","manualActionsLimit","skip","hasDropdownBeenShown","isDropdownVisible","isActionsLoading","isDropdownLimitReached","action","scheduledAt","confirmationMessage","confirmAction","confirmJobConfirmationMessage","jobPlayMutation","fetchActions","trackClick","hideAction","jobItem","disabled","canPlayJob","modifiers","onClickAction","GlModal","deep","showConfirmationModal","hasRef","_isEmpty","modalTitle","modalText","primaryProps","attributes","showModal","set","emitSubmit","event","cancelProps","details","status","commit","commit_path","short_id","BUTTON_TOOLTIP_RETRY","BUTTON_TOOLTIP_CANCEL","PipelineMultiActions","PipelinesManualActions","PipelineStopModal","isCanceling","isRetrying","pipelineToCancel","hasActions","_this$pipeline","_this$pipeline2","has_manual_actions","has_scheduled_actions","onCloseModal","onConfirmCancelPipeline","handleCancelClick","handleRetryClick","flags","cancelable","GlAvatarLink","user","avatar_url","GlPopover","pipelineSchedulesPath","isScheduled","source","SCHEDULE_ORIGIN","isTriggered","TRIGGER_ORIGIN","isForked","forked","showMergedResultsBadge","merged_result_pipeline","merge_train_pipeline","autoDevopsTagId","autoDevopsHelpPath","helpPagePath","isApi","API_ORIGIN","latest","yaml_errors","failure_reason","auto_devops","stuck","detached_merge_request_pipeline","PipelineLabels","TooltipOnTruncate","UserAvatarLink","pipelineIdType","PIPELINE_ID_KEY","validator","PIPELINE_IID_KEY","refClass","mergeRequestRef","merge_request","commitRef","commitTag","_this$commitRef","tag","commitUrl","_this$pipeline3","commitShortSha","_this$pipeline4","refUrl","_this$commitRef2","_this$commitRef3","ref_url","tooltipTitle","_this$mergeRequestRef","_this$commitRef4","commitAuthor","_this$pipeline5","commitAuthorInformation","pipelineCommit","pipelineCommitAuthor","author","author_gravatar_url","author_email","username","author_name","commitIcon","ICONS","TAG","MR","BRANCH","commitIconTooltipTitle","commitTitle","_this$pipeline6","pipelineIdentifier","pipeline_schedule","pipelineSchedule","link","description","timeagoMixin","fontSize","duration","durationFormatted","formatTime","finishedTime","finished_at","finishedAt","timeFormatted","PipelinesTimeago","pipelineStatus","_this$pipeline$detail","cellHeight","GlSkeletonLoader","GlTableLite","PipelineFailedJobsWidget","PipelineMiniGraph","PipelineOperations","PipelineStatusBadge","PipelineTriggerer","PipelineUrl","useFailedJobsWidget","isCreatingPipeline","pipelines","Array","isMobile","GlBreakpointInstance","getBreakpointSize","tableFields","columnClass","tdClass","tdClasses","thAttr","pipelinesWithDetails","p","failed_builds_count","_showDetails","cellWidth","_this$$refs$ref","offsetWidth","displayFailedJobsWidget","item","getDownstreamPipelines","downstream","triggered","keepLatestDownstreamPipelines","getProjectPath","cleanLeadingSeparator","full_path","getStages","_item$details","stages","onCancelPipeline","onRefreshPipelinesTable","onRetryPipeline","rowClass","setLoaderPosition","trackPipelineMiniGraph","TBODY_TR_ATTR","fields","field","triggered_by","doc","loc","definitionRefs","findOperation","i","definitions","element","forEach","def","refs","Set","collectFragmentReferences","node","add","selectionSet","selections","selection","variableDefinitions","module","exports","operationName","newDoc","hasOwnProperty","opRefs","allRefs","newRefs","refName","prevRefs","has","childRef","op","push","oneQuery","names","concat","AcronymResult","computeScore","emptyAcronymResult","isAcronymFullWord","isMatch","isSeparator","isWordEnd","isWordStart","scoreAcronyms","scoreCharacter","scoreConsecutives","scoreExact","scoreExactMatch","scorePattern","scorePosition","scoreSize","score","string","options","preparedQuery","string_lw","allowErrors","core_lw","core_up","toLowerCase","ceil","subject","query_lw","query_up","j","m","n","qj_lw","qj_up","si","charCodeAt","subject_lw","acro","acro_score","align","csc_diag","csc_row","csc_score","csc_should_rebuild","miss_budget","miss_left","pos","record_miss","score_diag","score_row","score_up","si_lw","start","sz","charCodes","curr_s","prev_s","len","next_s","c","sc","abs","quality","sameCase","end","bonus","posBonus","startOfWord","k","mi","nj","pos2","fullWord","sepCount","sumPos","nbAcronymInQuery","call","PipelinesStore","constructor","state","pageInfo","isRunningMergeRequestPipeline","storePipelines","isUsingAsyncPipelineCreation","firstPipelineFromTable","firstPipelineFromRequest","created_at","toggleIsRunningPipeline","storeCount","storePagination","pagination","paginationInfo","keys","normalizedHeaders","normalizeHeaders","parseIntPagination","hasDetailedStatus","maxRenderedPipelines","totalPipelineCount","pipelinesTrimmed","slice","shouldRenderCounter","counterLabel","counterTooltipText","pipelineTooltipText","_pipeline$project","_pipeline$detailedSta","loadingText","mergeTrainMessage","stageJobsFetchError","viewStageLabel","JobDropdownItem","isMergeTrain","emits","isDropdownOpen","stageJobs","graphqlEtag","getPipelineStageJobsQuery","PIPELINE_POLL_INTERVAL_DEFAULT","_data$ciPipelineStage","ciPipelineStage","reportToSentry","dropdownHeaderText","dropdownTooltipTitle","tooltip","graphqlEtagStagePath","onHideDropdown","onShowDropdown","stageAriaLabel","PipelineStageDropdown","arrowStyles","DownstreamPipelines","PipelineStages","downstreamPipelines","pipelineStages","upstreamPipeline","formattedDownstreamPipelines","convertToGraphQLId","TYPENAME_CI_PIPELINE","formattedStages","s","TYPENAME_CI_STAGE","icon","hasDownstreamPipelines","latestDownstreamPipelines","hasUpstreamPipeline","_this$upstreamPipelin","upstreamPipelineStatus","_this$upstreamPipelin2","_this$upstreamPipelin3","upstreamTooltipText","_this$upstreamPipelin4","_this$upstreamPipelin5","PipelinesService","root","getPipelines","scope","page","CancelToken","queryParams","validateParams","cancelationSource","params","cancelToken","token","postAction","post","runMRPipeline","projectId","mergeRequestId","Api","postMergeRequestPipeline","Query","defaultPathSeparator","matcher","parseOptions","pathScorer","preparedQueryCache","scorer","process","platform","candidates","usePathScoring","match","_results","_i","_ref","wrap","prepareQuery","useExtensionBonus","pathSeparator","optCharRegEx","GlPagination","change","Function","showPagination","nextPage","previousPage","_b","perPage","total","$attrs","HTTP_STATUS_ABORTED","HTTP_STATUS_OK","HTTP_STATUS_CREATED","HTTP_STATUS_NO_CONTENT","HTTP_STATUS_BAD_REQUEST","HTTP_STATUS_UNAUTHORIZED","HTTP_STATUS_FORBIDDEN","HTTP_STATUS_NOT_FOUND","HTTP_STATUS_CONFLICT","HTTP_STATUS_GONE","HTTP_STATUS_PAYLOAD_TOO_LARGE","HTTP_STATUS_UNPROCESSABLE_ENTITY","HTTP_STATUS_TOO_MANY_REQUESTS","HTTP_STATUS_INTERNAL_SERVER_ERROR","successCodes","endDateString","isNaN","Date","getTime","remainingTime","countdownUpdateIntervalId","updateRemainingTime","remainingMilliseconds","calculateRemainingMilliseconds","window","setInterval","clearInterval","remainingTimeIntervalId","startRemainingTimeInterval","isDelayedJob","_this$job2","scheduled","scheduledTime","scheduled_at","UserAvatarImage","linkHref","imgCssClasses","imgCssWrapperClasses","imgSize","popoverUserId","popoverUsername","userId","shouldShowUsername","avatarTooltipText","ANY_TRIGGER_AUTHOR","FILTER_PIPELINES_SEARCH_DELAY","CATALOG_TRACKING_LABEL","GITLAB_UNIVERSITY_TRACKING_LABEL","MIGRATE_FROM_JENKINS_TRACKING_LABEL","coreChars","countDir","getCharCodes","getExtension","opt_char_re","truncatedUpperCase","_arg","_ref1","core","depth","ext","str","upper","_len","toUpperCase","GlResizeObserver","GlResizeObserverDirective","placement","boundary","truncateTarget","tooltipDisabled","classes","$nextTick","updateTooltip","created","updateTooltipDebounced","_debounce","selectTarget","_isFunction","$el","childNodes","hasHorizontalOverflow","onResize","toggleText","toggleAriaLabel","isCollapsible","collapsed","anchorId","headerClass","titleClass","bodyClass","persistCollapsedState","isCollapsed","localStorage","getItem","getLocalStorageKeyName","isFormVisible","isContentVisible","empty","toggleIcon","toggleLabel","ariaExpandedAttr","displayedCount","isFormUsedAndVisible","form","handler","newVal","toggleCollapse","setItem","showForm","hideForm","toggleForm","footer","Poll","notificationCallback","intervalHeader","timeoutID","canPoll","checkConditions","response","headers","parseInt","clearTimeout","setTimeout","makeRequest","successCallback","makeDelayedRequest","delay","_this2","_this3","resource","method","errorCallback","stop","enable","restart","getExtensionScore","scorePath","fullPathScore","alpha","basePathScore","basePos","extAdjust","fileLength","lastIndexOf","substr","candidate","startPos","endPos","maxDepth","matched","DOWNSTREAM","MAIN","UPSTREAM","ONE_COL_WIDTH","STAGE_VIEW","LAYER_VIEW","SKIP_RETRY_MODAL_KEY","VIEW_TYPE_KEY","SINGLE_JOB","JOB_DROPDOWN","ACTION_FAILURE","IID_FAILURE","RETRY_ACTION_TITLE","POLL_INTERVAL","forwardDeploymentFailureModalId","BUTTON_TOOLTIP_DELETE","FILTER_TAG_IDENTIFIER","JOB_GRAPHQL_ERRORS","jobMutationErrorText","jobQueryErrorText","RETRY","SUCCESS","SUCCESS_STATUS","PASSED_STATUS","MANUAL_STATUS","RAW_TEXT_WARNING","tabs","search","failed","tests","listbox","PIPELINE_POLL_INTERVAL_BACKOFF","FOUR_MINUTES_IN_MS","NETWORK_STATUS_READY","iconSize","InternalEvents","jobStatusGroup","jobId","jobGid","isBuild","resourceId","TYPENAME_CI_BUILD","jobFailed","shouldDisplayButton","trackEvent","callDuo","sendDuoChatCommand","question","failureType","Sentry","tags","__vue_script__","prop","x","totalItems","limits","xs","sm","md","linkGen","prevPage","prevText","nextText","ellipsisText","labelNav","labelFirstPage","labelPrevPage","labelNextPage","labelLastPage","labelPage","left","breakpoint","minTotalPagesToCollapse","totalPages","isCompactPagination","paginationLimit","fill","center","right","isFillAlign","diff","maxAdjacentPages","firstPage","shouldCollapseLeftSide","min","lastPage","shouldCollapseRightSide","from","to","getPageItem","splice","getEllipsisItem","pageIsDisabled","prevPageIsDisabled","labelForPage","nextPageIsDisabled","isLinkBased","addEventListener","setBreakpoint","removeEventListener","commonAttrs","isActivePage","isDisabled","listeners","click","handleClick","slot","slotData","side","preventDefault","__vue_component__","render","_h","$createElement","wrapperClasses","prevPageAriaLabel","prevPageHref","handlePrevious","_g","nextPageAriaLabel","nextPageHref","handleNext","staticRenderFns","isMakingRequest","updateGraphDropdown","hasMadeRequest","shouldRenderPagination","beforeMount","poll","service","requestData","setIsMakingRequest","Visibility","hidden","fetchPipelines","eventHub","$on","updateTable","runMergeRequestPipeline","$off","destroyed","cancel_path","retry_path","updateInternalState","parameters","queryString","parameter","encodeURIComponent","join","historyPushState","buildUrlWithCurrentLocation","updateContent","cancel","CANCEL_REQUEST","_this4","setCommonData","store","_this5","_this6","isAsync","TOAST_MESSAGE","unauthorized","errorMessage","primaryButton","onChangePage","onChangeWithFilter","basenameMatch","computeMatch","mergeMatches","baseMatches","matches","matchIndex","matchPos","matchPositions","output","strPos","tagClass","tagClose","tagOpen","substring","b","ai","bj","out","offset","backtrack","move","trace","reverse","GlEmptyState","PipelinesTable","TablePagination","PipelinesMixin","canCreatePipelineInTargetProject","errorStateSvgPath","emptyStateSvgPath","isMergeRequestTable","sourceProjectFullPath","targetProjectFullPath","viewType","PipelineStore","getParameterByName","modalId","shouldRenderTable","shouldRenderErrorState","shouldRenderEmptyState","canRenderPipelineButton","latestPipelineDetachedFlag","isForkMergeRequest","isLatestPipelineCreatedInTargetProject","_latest$project","shouldShowSecurityWarning","merge_request_pipeline","resp","_resp$headers","updatePipelinesEvent","CustomEvent","detail","pipelineCount","parentElement","dispatchEvent","onClickRunPipeline","tryRunPipeline","modal","pipelineIdKey","actionPrimary","actionCancel","runPipelinePopoverTitle","runPipelinePopoverDescription","runPipelineText","emptyStateTitle","mrPipelinesDocsPath","anchor","userPermissionsDocsPath","runPipelinesInTheParentProjectHelpPath","confirmationText","customMessage","visible","confirmButton","cancelJob","playJob","unscheduleJob","JOB_ACTIONS","dataName","cancelJobMutation","play","playJobMutation","retryJobMutation","unscheduleJobMutation","JobActionModal","jobAction","actionType","hasConfirmationModal","_this$jobAction","onActionButtonClick","executeJobAction","JobActionButton","JobNameComponent","delayedJobMixin","hasJobAction","_this$status","_this$status2","_this$status3","statusTooltip","capitalizeFirstCharacter","createEventHub","BTableLite","tableClass","inheritAttrs","stickyHeader","stickyHeaderClass","localTableClass","$listeners","pluckCandidates","sortCandidates","bKey","maxInners","maxResults","scoreProvider","scoredCandidates","spotLeft"],"mappings":"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","file":"1186.22ffc47e.chunk.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{ref:\"userAvatar\"},[_c('gl-avatar',{staticClass:\"gl-bg-cover\",class:{\n      lazy: _vm.lazy,\n      [_vm.cssClasses]: true,\n    },style:(_vm.pseudo ? { backgroundImage: `url('${_vm.sanitizedSource}')` } : null),attrs:{\"src\":_vm.pseudo ? undefined : _vm.resultantSrcAttribute,\"data-src\":_vm.sanitizedSource,\"size\":_vm.size,\"alt\":_vm.imgAlt,\"data-testid\":\"user-avatar-image\"}}),_vm._v(\" \"),(_vm.tooltipText || _vm.$scopedSlots.default)?_c('gl-tooltip',{attrs:{\"target\":() => _vm.$refs.userAvatar,\"placement\":_vm.tooltipPlacement,\"boundary\":\"window\"}},[_vm._t(\"default\",function(){return [_vm._v(_vm._s(_vm.tooltipText))]})],2):_vm._e()],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!./user_avatar_image.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!./user_avatar_image.vue?vue&type=script&lang=js\"","<script>\n/* This is a re-usable vue component for rendering a user avatar that\n      does not need to link to the user's profile. The image and an optional\n      tooltip can be configured by props passed to this component.\n\n      Sample configuration:\n\n      <user-avatar\n        lazy\n        :img-src=\"userAvatarSrc\"\n        :img-alt=\"tooltipText\"\n        :tooltip-text=\"tooltipText\"\n        tooltip-placement=\"top\"\n        :size=\"24\"\n      />\n\n    */\n\nimport { GlTooltip, GlAvatar } from '@gitlab/ui';\nimport { isObject } from 'lodash';\nimport defaultAvatarUrl from 'images/no_avatar.png';\nimport { __ } from '~/locale';\nimport { placeholderImage } from '~/lazy_loader';\n\nexport default {\n  name: 'UserAvatarImage',\n  components: {\n    GlTooltip,\n    GlAvatar,\n  },\n  props: {\n    lazy: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    imgSrc: {\n      type: String,\n      required: false,\n      default: defaultAvatarUrl,\n    },\n    cssClasses: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    imgAlt: {\n      type: String,\n      required: false,\n      default: __('user avatar'),\n    },\n    size: {\n      type: [Number, Object],\n      required: true,\n    },\n    tooltipText: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    tooltipPlacement: {\n      type: String,\n      required: false,\n      default: 'top',\n    },\n    // Render avatar using pseudo-elements so that they cannot be selected or copied\n    pseudo: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  computed: {\n    // API response sends null when gravatar is disabled and\n    // we provide an empty string when we use it inside user avatar link.\n    // In both cases we should render the defaultAvatarUrl\n    sanitizedSource() {\n      let baseSrc = this.imgSrc === '' || this.imgSrc === null ? defaultAvatarUrl : this.imgSrc;\n      // Only adds the width to the URL if its not a base64 data image\n      if (!(baseSrc.indexOf('data:') === 0) && !baseSrc.includes('?'))\n        baseSrc += `?width=${this.maximumSize}`;\n      return baseSrc;\n    },\n    maximumSize() {\n      if (isObject(this.size)) {\n        return Math.max(...Object.values(this.size)) * 2;\n      }\n      return this.size * 2;\n    },\n    resultantSrcAttribute() {\n      return this.lazy ? placeholderImage : this.sanitizedSource;\n    },\n  },\n};\n</script>\n\n<template>\n  <span ref=\"userAvatar\">\n    <gl-avatar\n      class=\"gl-bg-cover\"\n      :class=\"{\n        lazy: lazy,\n        [cssClasses]: true,\n      }\"\n      :src=\"pseudo ? undefined : resultantSrcAttribute\"\n      :style=\"pseudo ? { backgroundImage: `url('${sanitizedSource}')` } : null\"\n      :data-src=\"sanitizedSource\"\n      :size=\"size\"\n      :alt=\"imgAlt\"\n      data-testid=\"user-avatar-image\"\n    />\n\n    <gl-tooltip\n      v-if=\"tooltipText || $scopedSlots.default\"\n      :target=\"() => $refs.userAvatar\"\n      :placement=\"tooltipPlacement\"\n      boundary=\"window\"\n    >\n      <slot>{{ tooltipText }}</slot>\n    </gl-tooltip>\n  </span>\n</template>\n","import { render, staticRenderFns } from \"./user_avatar_image.vue?vue&type=template&id=0836472c\"\nimport script from \"./user_avatar_image.vue?vue&type=script&lang=js\"\nexport * from \"./user_avatar_image.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:\"ci-table\"},[_c('gl-table-lite',{attrs:{\"fields\":_vm.tableFields,\"items\":_vm.pipelinesWithDetails,\"tbody-tr-attr\":_vm.$options.TBODY_TR_ATTR,\"tbody-tr-class\":_vm.rowClass,\"details-td-class\":\"!gl-pt-2\",\"stacked\":\"lg\",\"fixed\":\"\"},scopedSlots:_vm._u([{key:\"head(actions)\",fn:function(){return [_vm._t(\"table-header-actions\",function(){return [_c('span',{staticClass:\"gl-block gl-text-right\"},[_vm._v(_vm._s(_vm.s__('Pipeline|Actions')))])]})]},proxy:true},{key:\"table-colgroup\",fn:function({ fields }){return _vm._l((fields),function(field){return _c('col',{key:field.key,class:field.columnClass})})}},{key:\"cell(status)\",fn:function({ item }){return [(item.isLoading)?_c('div',{ref:\"status\"},[_c('gl-skeleton-loader',{attrs:{\"height\":_vm.$options.cellHeight,\"width\":_vm.cellWidth('status')}},[_c('rect',{attrs:{\"height\":\"30\",\"rx\":\"4\",\"ry\":\"4\",\"width\":_vm.cellWidth('status')}})])],1):_c('pipeline-status-badge',{attrs:{\"pipeline\":item}})]}},{key:\"cell(pipeline)\",fn:function({ item }){return [(item.isLoading)?_c('div',{ref:\"pipeline\"},[_c('gl-skeleton-loader',{attrs:{\"height\":_vm.$options.cellHeight,\"width\":_vm.cellWidth('pipeline')}},[_c('rect',{attrs:{\"height\":\"14\",\"rx\":\"4\",\"ry\":\"4\",\"width\":_vm.cellWidth('pipeline')}}),_vm._v(\" \"),_c('rect',{attrs:{\"height\":\"10\",\"rx\":\"4\",\"ry\":\"4\",\"width\":_vm.cellWidth('pipeline') / 2,\"x\":_vm.setLoaderPosition('pipeline'),\"y\":\"20\"}})])],1):_c('pipeline-url',{attrs:{\"pipeline\":item,\"pipeline-id-type\":_vm.pipelineIdType,\"ref-color\":\"gl-text-default\"}})]}},{key:\"cell(triggerer)\",fn:function({ item }){return [(item.isLoading)?_c('div',{ref:\"triggerer\",staticClass:\"gl-ml-3\"},[_c('gl-skeleton-loader',{attrs:{\"height\":_vm.$options.cellHeight,\"width\":_vm.cellWidth('triggerer')}},[_c('rect',{attrs:{\"height\":34,\"rx\":\"50\",\"ry\":\"50\",\"width\":34}})])],1):_c('pipeline-triggerer',{attrs:{\"pipeline\":item}})]}},{key:\"cell(stages)\",fn:function({ item }){return [(item.isLoading)?_c('div',{ref:\"stages\"},[_c('gl-skeleton-loader',{attrs:{\"height\":_vm.$options.cellHeight,\"width\":_vm.cellWidth('stages')}},[_c('rect',{attrs:{\"height\":\"20\",\"rx\":\"10\",\"ry\":\"10\",\"width\":_vm.cellWidth('stages')}})])],1):_c('pipeline-mini-graph',{attrs:{\"downstream-pipelines\":_vm.getDownstreamPipelines(item),\"pipeline-path\":item.path,\"pipeline-stages\":_vm.getStages(item),\"upstream-pipeline\":item.triggered_by},on:{\"miniGraphStageClick\":_vm.trackPipelineMiniGraph}})]}},{key:\"cell(actions)\",fn:function({ item }){return [(item.isLoading)?_c('div',{ref:\"actions\"},[_c('gl-skeleton-loader',{attrs:{\"height\":_vm.$options.cellHeight,\"width\":_vm.cellWidth('actions')}},[_c('rect',{attrs:{\"height\":\"20\",\"rx\":\"4\",\"ry\":\"4\",\"width\":_vm.cellWidth('actions')}})])],1):_c('pipeline-operations',{attrs:{\"pipeline\":item},on:{\"cancel-pipeline\":_vm.onCancelPipeline,\"refresh-pipelines-table\":_vm.onRefreshPipelinesTable,\"retry-pipeline\":_vm.onRetryPipeline}})]}},{key:\"row-details\",fn:function({ item }){return [(_vm.displayFailedJobsWidget(item))?_c('pipeline-failed-jobs-widget',{staticClass:\"-gl-my-3 -gl-ml-4\",attrs:{\"pipeline-iid\":item.iid,\"pipeline-path\":item.path,\"project-path\":_vm.getProjectPath(item)}}):_vm._e()]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"container-fluid gl-my-1 gl-grid-rows-auto\"},[_c('div',{staticClass:\"row gl-my-3 gl-flex gl-flex-wrap gl-items-center gl-gap-y-4\",attrs:{\"data-testid\":\"widget-row\"}},[_c('div',{staticClass:\"align-items-center col-4 gl-flex gl-text-default\"},[_c('ci-icon',{attrs:{\"status\":_vm.job.detailedStatus}}),_vm._v(\" \"),_c('gl-link',{staticClass:\"gl-ml-2 !gl-text-default !gl-no-underline\",attrs:{\"href\":_vm.detailsPath,\"data-testid\":\"job-name-link\"}},[_vm._v(_vm._s(_vm.job.name))])],1),_vm._v(\" \"),_c('div',{staticClass:\"col-2 gl-flex gl-items-center\",attrs:{\"data-testid\":\"job-stage-name\"}},[_vm._v(\"\\n      \"+_vm._s(_vm.job.stage.name)+\"\\n    \")]),_vm._v(\" \"),_c('div',{staticClass:\"col-2 gl-flex gl-items-center\"},[_c('gl-link',{attrs:{\"href\":_vm.detailsPath,\"data-testid\":\"job-id-link\"}},[_vm._v(\"#\"+_vm._s(_vm.parsedJobId))])],1),_vm._v(\" \"),(!_vm.canRetryJob)?_c('gl-tooltip',{attrs:{\"target\":() => _vm.$refs.retryBtn,\"placement\":\"top\"}},[_vm._v(\"\\n      \"+_vm._s(_vm.tooltipErrorText)+\"\\n    \")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"col-4 gl-flex gl-max-w-full gl-flex-grow gl-justify-end gl-gap-3\"},[_c('root-cause-analysis-button',{attrs:{\"job-gid\":_vm.job.id,\"job-status-group\":_vm.statusGroup,\"can-troubleshoot-job\":_vm.canTroubleshootJob,\"is-build\":_vm.isBuildJob}}),_vm._v(\" \"),_c('span',{ref:\"retryBtn\"},[_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"disabled\":!_vm.canRetryJob,\"icon\":\"retry\",\"category\":\"secondary\",\"loading\":_vm.isLoadingAction,\"title\":_vm.$options.i18n.retry,\"aria-label\":_vm.$options.i18n.retry,\"data-testid\":\"retry-button\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.retryJob.apply(null, arguments)}}})],1)],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!./failed_job_details.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!./failed_job_details.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlLink, GlTooltip, GlTooltipDirective } from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport { __, s__, sprintf } from '~/locale';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport CiIcon from '~/vue_shared/components/ci_icon/ci_icon.vue';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { BRIDGE_KIND, BUILD_KIND } from '~/ci/pipeline_details/graph/constants';\nimport RetryMrFailedJobMutation from '~/ci/merge_requests/graphql/mutations/retry_mr_failed_job.mutation.graphql';\nimport RootCauseAnalysisButton from 'ee_else_ce/ci/job_details/components/root_cause_analysis_button.vue';\n\nexport default {\n  components: {\n    CiIcon,\n    GlButton,\n    GlLink,\n    GlTooltip,\n    RootCauseAnalysisButton,\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n    SafeHtml,\n  },\n  props: {\n    job: {\n      type: Object,\n      required: true,\n    },\n    canTroubleshootJob: {\n      type: Boolean,\n      required: true,\n    },\n  },\n  data() {\n    return {\n      isLoadingAction: false,\n    };\n  },\n  computed: {\n    canRetryJob() {\n      return this.job.retryable && this.job.userPermissions.updateBuild && !this.isBridgeJob;\n    },\n    detailedStatus() {\n      return this.job?.detailedStatus;\n    },\n    detailsPath() {\n      return this.detailedStatus?.detailsPath;\n    },\n    statusGroup() {\n      return this.detailedStatus?.group;\n    },\n    isBridgeJob() {\n      return this.job.kind === BRIDGE_KIND;\n    },\n    parsedJobId() {\n      return getIdFromGraphQLId(this.job.id);\n    },\n    tooltipErrorText() {\n      return this.isBridgeJob\n        ? this.$options.i18n.cannotRetryTrigger\n        : this.$options.i18n.cannotRetry;\n    },\n    tooltipText() {\n      return sprintf(this.$options.i18n.jobActionTooltipText, { jobName: this.job.name });\n    },\n    isBuildJob() {\n      return this.job.kind === BUILD_KIND;\n    },\n  },\n  methods: {\n    async retryJob() {\n      try {\n        this.isLoadingAction = true;\n\n        const {\n          data: {\n            jobRetry: { errors },\n          },\n        } = await this.$apollo.mutate({\n          mutation: RetryMrFailedJobMutation,\n          variables: { id: this.job.id },\n        });\n\n        if (errors.length > 0) {\n          throw new Error(errors[0]);\n        }\n\n        this.$emit('job-retried', this.job.name);\n      } catch (error) {\n        createAlert({ message: error?.message || this.$options.i18n.retryError });\n      } finally {\n        this.isLoadingAction = false;\n      }\n    },\n  },\n  i18n: {\n    cannotReadBuild: s__(\"Job|You do not have permission to read this job's log.\"),\n    cannotRetry: s__('Job|You do not have permission to run this job again.'),\n    cannotRetryTrigger: s__('Job|You cannot rerun trigger jobs from this list.'),\n    jobActionTooltipText: s__('Pipelines|Retry %{jobName} Job'),\n    retry: __('Run again'),\n    retryError: __('There was an error while running this job again'),\n  },\n};\n</script>\n<template>\n  <div class=\"container-fluid gl-my-1 gl-grid-rows-auto\">\n    <div\n      class=\"row gl-my-3 gl-flex gl-flex-wrap gl-items-center gl-gap-y-4\"\n      data-testid=\"widget-row\"\n    >\n      <div class=\"align-items-center col-4 gl-flex gl-text-default\">\n        <ci-icon :status=\"job.detailedStatus\" />\n        <gl-link\n          class=\"gl-ml-2 !gl-text-default !gl-no-underline\"\n          :href=\"detailsPath\"\n          data-testid=\"job-name-link\"\n          >{{ job.name }}</gl-link\n        >\n      </div>\n      <div class=\"col-2 gl-flex gl-items-center\" data-testid=\"job-stage-name\">\n        {{ job.stage.name }}\n      </div>\n      <div class=\"col-2 gl-flex gl-items-center\">\n        <gl-link :href=\"detailsPath\" data-testid=\"job-id-link\">#{{ parsedJobId }}</gl-link>\n      </div>\n      <gl-tooltip v-if=\"!canRetryJob\" :target=\"() => $refs.retryBtn\" placement=\"top\">\n        {{ tooltipErrorText }}\n      </gl-tooltip>\n      <div class=\"col-4 gl-flex gl-max-w-full gl-flex-grow gl-justify-end gl-gap-3\">\n        <root-cause-analysis-button\n          :job-gid=\"job.id\"\n          :job-status-group=\"statusGroup\"\n          :can-troubleshoot-job=\"canTroubleshootJob\"\n          :is-build=\"isBuildJob\"\n        />\n\n        <span ref=\"retryBtn\">\n          <gl-button\n            v-gl-tooltip\n            :disabled=\"!canRetryJob\"\n            icon=\"retry\"\n            category=\"secondary\"\n            :loading=\"isLoadingAction\"\n            :title=\"$options.i18n.retry\"\n            :aria-label=\"$options.i18n.retry\"\n            data-testid=\"retry-button\"\n            @click.stop=\"retryJob\"\n          />\n        </span>\n      </div>\n    </div>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./failed_job_details.vue?vue&type=template&id=46f26962\"\nimport script from \"./failed_job_details.vue?vue&type=script&lang=js\"\nexport * from \"./failed_job_details.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","export const POLL_INTERVAL = 10000;\n","<script>\nimport { GlAlert, GlLink, GlLoadingIcon, GlSprintf } from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport { __, s__, sprintf } from '~/locale';\nimport { getQueryHeaders } from '~/ci/pipeline_details/graph/utils';\nimport { graphqlEtagPipelinePath } from '~/ci/pipeline_details/utils';\nimport { toggleQueryPollingByVisibility } from '~/graphql_shared/utils';\nimport getPipelineFailedJobs from '~/ci/pipelines_page/graphql/queries/get_pipeline_failed_jobs.query.graphql';\nimport { sortJobsByStatus } from './utils';\nimport FailedJobDetails from './failed_job_details.vue';\nimport { POLL_INTERVAL } from './constants';\n\nconst JOB_ID_HEADER = __('ID');\nconst JOB_NAME_HEADER = __('Name');\nconst STAGE_HEADER = __('Stage');\n\nexport default {\n  components: {\n    GlAlert,\n    GlLink,\n    GlLoadingIcon,\n    GlSprintf,\n    FailedJobDetails,\n  },\n  inject: ['graphqlPath'],\n  props: {\n    isMaximumJobLimitReached: {\n      required: true,\n      type: Boolean,\n    },\n    pipelineIid: {\n      type: Number,\n      required: true,\n    },\n    pipelinePath: {\n      required: true,\n      type: String,\n    },\n    projectPath: {\n      type: String,\n      required: true,\n    },\n  },\n  data() {\n    return {\n      failedJobs: [],\n      isLoadingMore: false,\n      canTroubleshootJob: false,\n    };\n  },\n  apollo: {\n    failedJobs: {\n      context() {\n        return getQueryHeaders(this.graphqlResourceEtag);\n      },\n      query: getPipelineFailedJobs,\n      pollInterval: POLL_INTERVAL,\n      variables() {\n        return {\n          fullPath: this.projectPath,\n          pipelineIid: this.pipelineIid,\n        };\n      },\n      update(data) {\n        const jobs = data?.project?.pipeline?.jobs?.nodes || [];\n        return sortJobsByStatus(jobs);\n      },\n      result({ data }) {\n        const pipeline = data?.project?.pipeline;\n        this.canTroubleshootJob = pipeline?.troubleshootJobWithAi || false;\n      },\n      error(e) {\n        createAlert({ message: e?.message || this.$options.i18n.fetchError, variant: 'danger' });\n      },\n    },\n  },\n  computed: {\n    graphqlResourceEtag() {\n      return graphqlEtagPipelinePath(this.graphqlPath, this.pipelineIid);\n    },\n    isInitialLoading() {\n      return this.isLoading && !this.isLoadingMore;\n    },\n    isLoading() {\n      return this.$apollo.queries.failedJobs.loading;\n    },\n  },\n  mounted() {\n    toggleQueryPollingByVisibility(this.$apollo.queries.failedJobs, POLL_INTERVAL);\n  },\n  methods: {\n    async retryJob(jobName) {\n      await this.refetchJobs();\n\n      this.$emit('job-retried');\n\n      this.$toast.show(sprintf(this.$options.i18n.retriedJobsSuccess, { jobName }));\n    },\n    async refetchJobs() {\n      this.isLoadingMore = true;\n\n      try {\n        await this.$apollo.queries.failedJobs.refetch();\n      } catch {\n        createAlert({ message: this.$options.i18n.fetchError });\n      } finally {\n        this.isLoadingMore = false;\n      }\n    },\n  },\n  columns: [\n    { text: JOB_NAME_HEADER, class: 'col-4' },\n    { text: STAGE_HEADER, class: 'col-2' },\n    { text: JOB_ID_HEADER, class: 'col-2' },\n  ],\n  i18n: {\n    maximumJobLimitAlert: {\n      title: s__('Pipelines|Maximum list size reached'),\n      message: s__(\n        `Pipelines| The list can only display 100 jobs. To view all jobs, %{linkStart}go to this pipeline's details page.%{linkEnd}`,\n      ),\n    },\n    fetchError: __('There was a problem fetching failed jobs'),\n    retriedJobsSuccess: __('%{jobName} job is being retried'),\n  },\n};\n</script>\n\n<template>\n  <div class=\"gl-mb-4\">\n    <gl-loading-icon v-if=\"isInitialLoading\" class=\"gl-p-4\" />\n    <div v-else class=\"container-fluid gl-grid-rows-auto\">\n      <gl-alert\n        v-if=\"isMaximumJobLimitReached\"\n        :title=\"$options.i18n.maximumJobLimitAlert.title\"\n        variant=\"warning\"\n        class=\"gl-mt-4\"\n      >\n        <gl-sprintf :message=\"$options.i18n.maximumJobLimitAlert.message\">\n          <template #link=\"{ content }\">\n            <gl-link class=\"!gl-no-underline\" :href=\"pipelinePath\" target=\"_blank\">\n              {{ content }}\n            </gl-link>\n          </template>\n        </gl-sprintf>\n      </gl-alert>\n      <div class=\"row gl-my-4 gl-text-default\">\n        <div\n          v-for=\"col in $options.columns\"\n          :key=\"col.text\"\n          class=\"gl-flex gl-font-bold\"\n          :class=\"col.class\"\n          data-testid=\"header\"\n        >\n          {{ col.text }}\n        </div>\n      </div>\n    </div>\n    <failed-job-details\n      v-for=\"job in failedJobs\"\n      :key=\"job.id\"\n      :job=\"job\"\n      :can-troubleshoot-job=\"canTroubleshootJob\"\n      @job-retried=\"retryJob\"\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!./failed_jobs_list.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!./failed_jobs_list.vue?vue&type=script&lang=js\"","export const isFailedJob = (job = {}) => {\n  return job?.detailedStatus?.group === 'failed' || false;\n};\n\nexport const sortJobsByStatus = (jobs = []) => {\n  const newJobs = [...jobs];\n\n  return newJobs.sort((a) => {\n    if (isFailedJob(a)) {\n      return -1;\n    }\n\n    return 1;\n  });\n};\n","import { render, staticRenderFns } from \"./failed_jobs_list.vue?vue&type=template&id=2b892e9f\"\nimport script from \"./failed_jobs_list.vue?vue&type=script&lang=js\"\nexport * from \"./failed_jobs_list.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-mb-4\"},[(_vm.isInitialLoading)?_c('gl-loading-icon',{staticClass:\"gl-p-4\"}):_c('div',{staticClass:\"container-fluid gl-grid-rows-auto\"},[(_vm.isMaximumJobLimitReached)?_c('gl-alert',{staticClass:\"gl-mt-4\",attrs:{\"title\":_vm.$options.i18n.maximumJobLimitAlert.title,\"variant\":\"warning\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.maximumJobLimitAlert.message},scopedSlots:_vm._u([{key:\"link\",fn:function({ content }){return [_c('gl-link',{staticClass:\"!gl-no-underline\",attrs:{\"href\":_vm.pipelinePath,\"target\":\"_blank\"}},[_vm._v(\"\\n            \"+_vm._s(content)+\"\\n          \")])]}}],null,false,616764878)})],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"row gl-my-4 gl-text-default\"},_vm._l((_vm.$options.columns),function(col){return _c('div',{key:col.text,staticClass:\"gl-flex gl-font-bold\",class:col.class,attrs:{\"data-testid\":\"header\"}},[_vm._v(\"\\n        \"+_vm._s(col.text)+\"\\n      \")])}),0)],1),_vm._v(\" \"),_vm._l((_vm.failedJobs),function(job){return _c('failed-job-details',{key:job.id,attrs:{\"job\":job,\"can-troubleshoot-job\":_vm.canTroubleshootJob},on:{\"job-retried\":_vm.retryJob}})})],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!./pipeline_failed_jobs_widget.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_failed_jobs_widget.vue?vue&type=script&lang=js\"","<script>\nimport { GlBadge, GlButton, GlIcon } from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport CrudComponent from '~/vue_shared/components/crud_component.vue';\nimport { __ } from '~/locale';\nimport { getQueryHeaders } from '~/ci/pipeline_details/graph/utils';\nimport { graphqlEtagPipelinePath } from '~/ci/pipeline_details/utils';\nimport { toggleQueryPollingByVisibility } from '~/graphql_shared/utils';\nimport getPipelineFailedJobsCount from '../../graphql/queries/get_pipeline_failed_jobs_count.query.graphql';\nimport FailedJobsList from './failed_jobs_list.vue';\nimport { POLL_INTERVAL } from './constants';\n\nexport default {\n  fetchError: __('An error occured fetching failed jobs count'),\n  components: {\n    GlBadge,\n    GlButton,\n    GlIcon,\n    FailedJobsList,\n    CrudComponent,\n  },\n  inject: ['fullPath', 'graphqlPath'],\n  props: {\n    pipelineIid: {\n      required: true,\n      type: Number,\n    },\n    pipelinePath: {\n      required: true,\n      type: String,\n    },\n    projectPath: {\n      required: true,\n      type: String,\n    },\n  },\n  apollo: {\n    failedJobsCount: {\n      context() {\n        return getQueryHeaders(this.graphqlResourceEtag);\n      },\n      query: getPipelineFailedJobsCount,\n      variables() {\n        return {\n          fullPath: this.projectPath,\n          pipelineIid: this.pipelineIid,\n        };\n      },\n      update({ project }) {\n        this.isPipelineActive = project?.pipeline?.active || false;\n\n        return project?.pipeline?.jobs?.count || 0;\n      },\n      error() {\n        createAlert({ message: this.$options.fetchError });\n      },\n    },\n  },\n  data() {\n    return {\n      failedJobsCount: 0,\n      isExpanded: false,\n      // explicity set to null so watcher can detect\n      // reactivity changes for polling\n      isPipelineActive: null,\n    };\n  },\n  computed: {\n    graphqlResourceEtag() {\n      return graphqlEtagPipelinePath(this.graphqlPath, this.pipelineIid);\n    },\n    bodyClasses() {\n      return this.isExpanded ? '' : 'gl-hidden';\n    },\n    failedJobsCountBadge() {\n      return `${this.isMaximumJobLimitReached ? '100+' : this.failedJobsCount}`;\n    },\n    iconName() {\n      return this.isExpanded ? 'chevron-down' : 'chevron-right';\n    },\n    isMaximumJobLimitReached() {\n      return this.failedJobsCount > 100;\n    },\n  },\n  watch: {\n    isPipelineActive(active) {\n      if (!active) {\n        this.$apollo.queries.failedJobsCount.stopPolling();\n      } else {\n        this.$apollo.queries.failedJobsCount.startPolling(POLL_INTERVAL);\n        // ensure we only toggle polling back on tab switch\n        // if the pipeline is active\n        toggleQueryPollingByVisibility(this.$apollo.queries.failedJobsCount, POLL_INTERVAL);\n      }\n    },\n  },\n  beforeDestroy() {\n    this.$apollo.queries.failedJobsCount.stopPolling();\n  },\n  methods: {\n    toggleWidget() {\n      this.isExpanded = !this.isExpanded;\n    },\n    async refetchCount() {\n      try {\n        // \"pause\" polling during manual refetch of count\n        // to avoid redundant calls\n        this.$apollo.queries.failedJobsCount.stopPolling();\n        await this.$apollo.queries.failedJobsCount.refetch();\n      } catch {\n        createAlert({ message: this.$options.fetchError });\n      } finally {\n        if (this.isPipelineActive) {\n          this.$apollo.queries.failedJobsCount.startPolling(POLL_INTERVAL);\n        }\n      }\n    },\n  },\n  ariaControlsId: 'pipeline-failed-jobs-widget',\n};\n</script>\n<template>\n  <crud-component\n    :id=\"$options.ariaControlsId\"\n    class=\"expandable-card\"\n    :class=\"{ 'is-collapsed gl-border-transparent hover:gl-border-default': !isExpanded }\"\n    data-testid=\"failed-jobs-card\"\n    @click=\"toggleWidget\"\n  >\n    <template #title>\n      <gl-button\n        variant=\"link\"\n        class=\"!gl-text-subtle\"\n        :aria-expanded=\"isExpanded.toString()\"\n        :aria-controls=\"$options.ariaControlsId\"\n        data-testid=\"toggle-button\"\n        @click=\"toggleWidget\"\n      >\n        <gl-icon :name=\"iconName\" class=\"gl-mr-2\" />\n        <span class=\"gl-font-bold gl-text-subtle\">\n          {{ __('Failed jobs') }}\n        </span>\n      </gl-button>\n    </template>\n    <template #count>\n      <gl-badge>\n        {{ failedJobsCountBadge }}\n      </gl-badge>\n    </template>\n    <template #actions>\n      <gl-button\n        v-if=\"isExpanded\"\n        href=\"https://gitlab.com/gitlab-org/gitlab/-/issues/502436\"\n        data-testid=\"feedback-button\"\n        size=\"small\"\n      >\n        {{ __('Leave feedback') }}\n      </gl-button>\n    </template>\n    <failed-jobs-list\n      v-if=\"isExpanded\"\n      :is-maximum-job-limit-reached=\"isMaximumJobLimitReached\"\n      :pipeline-iid=\"pipelineIid\"\n      :pipeline-path=\"pipelinePath\"\n      :project-path=\"projectPath\"\n      @job-retried=\"refetchCount\"\n    />\n  </crud-component>\n</template>\n","import { render, staticRenderFns } from \"./pipeline_failed_jobs_widget.vue?vue&type=template&id=4fb45960\"\nimport script from \"./pipeline_failed_jobs_widget.vue?vue&type=script&lang=js\"\nexport * from \"./pipeline_failed_jobs_widget.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('crud-component',{staticClass:\"expandable-card\",class:{ 'is-collapsed gl-border-transparent hover:gl-border-default': !_vm.isExpanded },attrs:{\"id\":_vm.$options.ariaControlsId,\"data-testid\":\"failed-jobs-card\"},on:{\"click\":_vm.toggleWidget},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('gl-button',{staticClass:\"!gl-text-subtle\",attrs:{\"variant\":\"link\",\"aria-expanded\":_vm.isExpanded.toString(),\"aria-controls\":_vm.$options.ariaControlsId,\"data-testid\":\"toggle-button\"},on:{\"click\":_vm.toggleWidget}},[_c('gl-icon',{staticClass:\"gl-mr-2\",attrs:{\"name\":_vm.iconName}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-font-bold gl-text-subtle\"},[_vm._v(\"\\n        \"+_vm._s(_vm.__('Failed jobs'))+\"\\n      \")])],1)]},proxy:true},{key:\"count\",fn:function(){return [_c('gl-badge',[_vm._v(\"\\n      \"+_vm._s(_vm.failedJobsCountBadge)+\"\\n    \")])]},proxy:true},{key:\"actions\",fn:function(){return [(_vm.isExpanded)?_c('gl-button',{attrs:{\"href\":\"https://gitlab.com/gitlab-org/gitlab/-/issues/502436\",\"data-testid\":\"feedback-button\",\"size\":\"small\"}},[_vm._v(\"\\n      \"+_vm._s(_vm.__('Leave feedback'))+\"\\n    \")]):_vm._e()]},proxy:true}])},[_vm._v(\" \"),_vm._v(\" \"),_vm._v(\" \"),(_vm.isExpanded)?_c('failed-jobs-list',{attrs:{\"is-maximum-job-limit-reached\":_vm.isMaximumJobLimitReached,\"pipeline-iid\":_vm.pipelineIid,\"pipeline-path\":_vm.pipelinePath,\"project-path\":_vm.projectPath},on:{\"job-retried\":_vm.refetchCount}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport {\n  GlAlert,\n  GlDisclosureDropdown,\n  GlSearchBoxByType,\n  GlLoadingIcon,\n  GlTooltipDirective,\n} from '@gitlab/ui';\nimport fuzzaldrinPlus from 'fuzzaldrin-plus';\nimport axios from '~/lib/utils/axios_utils';\nimport { __, s__ } from '~/locale';\nimport Tracking from '~/tracking';\nimport { TRACKING_CATEGORIES } from '../../constants';\n\nexport const i18n = {\n  searchPlaceholder: __('Search artifacts'),\n  downloadArtifacts: __('Download artifacts'),\n  artifactsFetchErrorMessage: s__('Pipelines|Could not load artifacts.'),\n  artifactsFetchWarningMessage: s__(\n    'Pipelines|Failed to update. Please reload page to update the list of artifacts.',\n  ),\n  emptyArtifactsMessage: __('No artifacts found'),\n};\n\nexport default {\n  i18n,\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  components: {\n    GlAlert,\n    GlDisclosureDropdown,\n    GlSearchBoxByType,\n    GlLoadingIcon,\n  },\n  mixins: [Tracking.mixin()],\n  inject: {\n    artifactsEndpoint: {\n      default: '',\n    },\n    artifactsEndpointPlaceholder: {\n      default: '',\n    },\n  },\n  props: {\n    pipelineId: {\n      type: Number,\n      required: true,\n    },\n  },\n  data() {\n    return {\n      artifacts: [],\n      hasError: false,\n      isLoading: false,\n      searchQuery: '',\n      isNewPipeline: false,\n    };\n  },\n  computed: {\n    hasArtifacts() {\n      return this.artifacts.length > 0;\n    },\n    filteredArtifacts() {\n      return this.searchQuery.length > 0\n        ? fuzzaldrinPlus.filter(this.artifacts, this.searchQuery, { key: 'name' })\n        : this.artifacts;\n    },\n    items() {\n      return this.filteredArtifacts.map(({ name, path }) => ({\n        text: name,\n        href: path,\n        extraAttrs: {\n          download: '',\n          rel: 'nofollow',\n          'data-testid': 'artifact-item',\n        },\n      }));\n    },\n  },\n  watch: {\n    pipelineId() {\n      this.isNewPipeline = true;\n    },\n  },\n  methods: {\n    fetchArtifacts() {\n      // refactor tracking based on action once this dropdown supports\n      // actions other than artifacts\n      this.track('click_artifacts_dropdown', { label: TRACKING_CATEGORIES.table });\n\n      // Preserve the last good list and present it if a request fails\n      const oldArtifacts = [...this.artifacts];\n      this.artifacts = [];\n\n      this.hasError = false;\n      this.isLoading = true;\n\n      // Replace the placeholder with the ID of the pipeline we are viewing\n      const endpoint = this.artifactsEndpoint.replace(\n        this.artifactsEndpointPlaceholder,\n        this.pipelineId,\n      );\n      return axios\n        .get(endpoint)\n        .then(({ data }) => {\n          this.artifacts = data.artifacts;\n          this.isNewPipeline = false;\n        })\n        .catch(() => {\n          this.hasError = true;\n          if (!this.isNewPipeline) {\n            this.artifacts = oldArtifacts;\n          }\n        })\n        .finally(() => {\n          this.isLoading = false;\n        });\n    },\n    onDisclosureDropdownShown() {\n      this.fetchArtifacts();\n    },\n    onDisclosureDropdownHidden() {\n      this.searchQuery = '';\n    },\n  },\n};\n</script>\n<template>\n  <gl-disclosure-dropdown\n    v-gl-tooltip\n    class=\"gl-text-left\"\n    :title=\"$options.i18n.downloadArtifacts\"\n    :toggle-text=\"$options.i18n.downloadArtifacts\"\n    :aria-label=\"$options.i18n.downloadArtifacts\"\n    :items=\"items\"\n    icon=\"download\"\n    placement=\"bottom-end\"\n    text-sr-only\n    data-testid=\"pipeline-multi-actions-dropdown\"\n    @shown=\"onDisclosureDropdownShown\"\n    @hidden=\"onDisclosureDropdownHidden\"\n  >\n    <template #header>\n      <div\n        aria-hidden=\"true\"\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-text-strong gl-border-b-solid\"\n      >\n        {{ $options.i18n.downloadArtifacts }}\n      </div>\n      <div v-if=\"hasArtifacts\" class=\"gl-border-b-1 gl-border-b-dropdown gl-border-b-solid\">\n        <gl-search-box-by-type\n          ref=\"searchInput\"\n          v-model.trim=\"searchQuery\"\n          :placeholder=\"$options.i18n.searchPlaceholder\"\n          borderless\n          autofocus\n        />\n      </div>\n      <gl-alert\n        v-if=\"hasError && !hasArtifacts\"\n        variant=\"danger\"\n        :dismissible=\"false\"\n        data-testid=\"artifacts-fetch-error\"\n      >\n        {{ $options.i18n.artifactsFetchErrorMessage }}\n      </gl-alert>\n    </template>\n\n    <gl-loading-icon v-if=\"isLoading\" class=\"gl-m-3\" size=\"sm\" />\n    <p\n      v-else-if=\"filteredArtifacts.length === 0\"\n      class=\"gl-m-0 gl-px-4 gl-py-3 gl-text-subtle\"\n      data-testid=\"artifacts-empty-message\"\n    >\n      {{ $options.i18n.emptyArtifactsMessage }}\n    </p>\n\n    <template #footer>\n      <p\n        v-if=\"hasError && hasArtifacts\"\n        class=\"gl-border-t gl-mb-0 gl-px-5 gl-py-4 gl-text-sm gl-text-subtle\"\n        data-testid=\"artifacts-fetch-warning\"\n      >\n        {{ $options.i18n.artifactsFetchWarningMessage }}\n      </p>\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_multi_actions.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_multi_actions.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./pipeline_multi_actions.vue?vue&type=template&id=2399e4b9\"\nimport script from \"./pipeline_multi_actions.vue?vue&type=script&lang=js\"\nexport * from \"./pipeline_multi_actions.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',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-text-left\",attrs:{\"title\":_vm.$options.i18n.downloadArtifacts,\"toggle-text\":_vm.$options.i18n.downloadArtifacts,\"aria-label\":_vm.$options.i18n.downloadArtifacts,\"items\":_vm.items,\"icon\":\"download\",\"placement\":\"bottom-end\",\"text-sr-only\":\"\",\"data-testid\":\"pipeline-multi-actions-dropdown\"},on:{\"shown\":_vm.onDisclosureDropdownShown,\"hidden\":_vm.onDisclosureDropdownHidden},scopedSlots:_vm._u([{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-text-strong gl-border-b-solid\",attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"\\n      \"+_vm._s(_vm.$options.i18n.downloadArtifacts)+\"\\n    \")]),_vm._v(\" \"),(_vm.hasArtifacts)?_c('div',{staticClass:\"gl-border-b-1 gl-border-b-dropdown gl-border-b-solid\"},[_c('gl-search-box-by-type',{ref:\"searchInput\",attrs:{\"placeholder\":_vm.$options.i18n.searchPlaceholder,\"borderless\":\"\",\"autofocus\":\"\"},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"searchQuery\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.hasError && !_vm.hasArtifacts)?_c('gl-alert',{attrs:{\"variant\":\"danger\",\"dismissible\":false,\"data-testid\":\"artifacts-fetch-error\"}},[_vm._v(\"\\n      \"+_vm._s(_vm.$options.i18n.artifactsFetchErrorMessage)+\"\\n    \")]):_vm._e()]},proxy:true},{key:\"footer\",fn:function(){return [(_vm.hasError && _vm.hasArtifacts)?_c('p',{staticClass:\"gl-border-t gl-mb-0 gl-px-5 gl-py-4 gl-text-sm gl-text-subtle\",attrs:{\"data-testid\":\"artifacts-fetch-warning\"}},[_vm._v(\"\\n      \"+_vm._s(_vm.$options.i18n.artifactsFetchWarningMessage)+\"\\n    \")]):_vm._e()]},proxy:true}])},[_vm._v(\" \"),(_vm.isLoading)?_c('gl-loading-icon',{staticClass:\"gl-m-3\",attrs:{\"size\":\"sm\"}}):(_vm.filteredArtifacts.length === 0)?_c('p',{staticClass:\"gl-m-0 gl-px-4 gl-py-3 gl-text-subtle\",attrs:{\"data-testid\":\"artifacts-empty-message\"}},[_vm._v(\"\\n    \"+_vm._s(_vm.$options.i18n.emptyArtifactsMessage)+\"\\n  \")]):_vm._e()],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!./pipelines_manual_actions.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!./pipelines_manual_actions.vue?vue&type=script&lang=js\"","<script>\nimport {\n  GlDisclosureDropdown,\n  GlDisclosureDropdownItem,\n  GlIcon,\n  GlLoadingIcon,\n  GlTooltipDirective,\n} from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport { confirmAction } from '~/lib/utils/confirm_via_gl_modal/confirm_via_gl_modal';\nimport { s__, __, sprintf } from '~/locale';\nimport Tracking from '~/tracking';\nimport GlCountdown from '~/vue_shared/components/gl_countdown.vue';\nimport { confirmJobConfirmationMessage } from '~/ci/pipeline_details/graph/utils';\nimport { TRACKING_CATEGORIES } from '../../constants';\nimport getPipelineActionsQuery from '../graphql/queries/get_pipeline_actions.query.graphql';\nimport jobPlayMutation from '../../jobs_page/graphql/mutations/job_play.mutation.graphql';\n\nexport default {\n  name: 'PipelinesManualActions',\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  components: {\n    GlCountdown,\n    GlDisclosureDropdown,\n    GlDisclosureDropdownItem,\n    GlIcon,\n    GlLoadingIcon,\n  },\n  mixins: [Tracking.mixin()],\n  inject: ['fullPath', 'manualActionsLimit'],\n  props: {\n    iid: {\n      type: Number,\n      required: true,\n    },\n  },\n  apollo: {\n    actions: {\n      query: getPipelineActionsQuery,\n      variables() {\n        return {\n          fullPath: this.fullPath,\n          iid: this.iid,\n          limit: this.manualActionsLimit,\n        };\n      },\n      skip() {\n        return !this.hasDropdownBeenShown;\n      },\n      update({ project }) {\n        return project?.pipeline?.jobs?.nodes || [];\n      },\n    },\n  },\n  data() {\n    return {\n      isLoading: false,\n      actions: [],\n      hasDropdownBeenShown: false,\n      isDropdownVisible: false,\n    };\n  },\n  computed: {\n    isActionsLoading() {\n      return this.$apollo.queries.actions.loading;\n    },\n    isDropdownLimitReached() {\n      return this.actions.length === this.manualActionsLimit;\n    },\n  },\n  methods: {\n    async onClickAction(action) {\n      if (action.scheduledAt) {\n        const confirmationMessage = sprintf(\n          s__(\n            'DelayedJobs|Are you sure you want to run %{jobName} immediately? Otherwise this job will run automatically after its timer finishes.',\n          ),\n          { jobName: action.name },\n        );\n\n        const confirmed = await confirmAction(confirmationMessage);\n\n        if (!confirmed) {\n          return;\n        }\n      } else if (action.detailedStatus.action.confirmationMessage) {\n        const confirmed = await confirmJobConfirmationMessage(\n          action.name,\n          action.detailedStatus.action.confirmationMessage,\n        );\n\n        if (!confirmed) {\n          return;\n        }\n      }\n      this.isLoading = true;\n      this.$apollo\n        .mutate({\n          mutation: jobPlayMutation,\n          variables: {\n            id: action.id,\n          },\n        })\n        .then(() => {\n          this.isLoading = false;\n          this.$emit('refresh-pipeline-table');\n        })\n        .catch(() => {\n          this.isLoading = false;\n          createAlert({ message: __('An error occurred while making the request.') });\n        });\n    },\n    fetchActions() {\n      this.isDropdownVisible = true;\n      this.hasDropdownBeenShown = true;\n\n      this.$apollo.queries.actions.refetch();\n\n      this.trackClick();\n    },\n    hideAction() {\n      this.isDropdownVisible = false;\n    },\n    trackClick() {\n      this.track('click_manual_actions', { label: TRACKING_CATEGORIES.table });\n    },\n    jobItem(job) {\n      return {\n        text: job.name,\n        extraAttrs: {\n          disabled: !job.canPlayJob,\n        },\n      };\n    },\n  },\n};\n</script>\n<template>\n  <gl-disclosure-dropdown\n    v-gl-tooltip.left=\"isDropdownVisible ? '' : __('Run manual or delayed jobs')\"\n    :loading=\"isLoading\"\n    data-testid=\"pipelines-manual-actions-dropdown\"\n    right\n    lazy\n    icon=\"play\"\n    @shown=\"fetchActions\"\n    @hidden=\"hideAction\"\n  >\n    <gl-disclosure-dropdown-item v-if=\"isActionsLoading\">\n      <template #list-item>\n        <div class=\"gl-flex\">\n          <gl-loading-icon class=\"mr-2\" />\n          <span>{{ __('Loading...') }}</span>\n        </div>\n      </template>\n    </gl-disclosure-dropdown-item>\n\n    <gl-disclosure-dropdown-item\n      v-for=\"action in actions\"\n      v-else\n      :key=\"action.id\"\n      :item=\"jobItem(action)\"\n      @action=\"onClickAction(action)\"\n    >\n      <template #list-item>\n        <div class=\"gl-flex gl-flex-wrap gl-justify-between\">\n          {{ action.name }}\n          <span v-if=\"action.scheduledAt\">\n            <gl-icon name=\"clock\" />\n            <gl-countdown :end-date-string=\"action.scheduledAt\" />\n          </span>\n        </div>\n      </template>\n    </gl-disclosure-dropdown-item>\n\n    <template #footer>\n      <gl-disclosure-dropdown-item v-if=\"isDropdownLimitReached\">\n        <template #list-item>\n          <span class=\"gl-text-sm !gl-text-gray-300\" data-testid=\"limit-reached-msg\">\n            {{ __('Showing first 50 actions.') }}\n          </span>\n        </template>\n      </gl-disclosure-dropdown-item>\n    </template>\n  </gl-disclosure-dropdown>\n</template>\n","import { render, staticRenderFns } from \"./pipelines_manual_actions.vue?vue&type=template&id=41962a3e\"\nimport script from \"./pipelines_manual_actions.vue?vue&type=script&lang=js\"\nexport * from \"./pipelines_manual_actions.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',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left\",value:(_vm.isDropdownVisible ? '' : _vm.__('Run manual or delayed jobs')),expression:\"isDropdownVisible ? '' : __('Run manual or delayed jobs')\",modifiers:{\"left\":true}}],attrs:{\"loading\":_vm.isLoading,\"data-testid\":\"pipelines-manual-actions-dropdown\",\"right\":\"\",\"lazy\":\"\",\"icon\":\"play\"},on:{\"shown\":_vm.fetchActions,\"hidden\":_vm.hideAction},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [(_vm.isDropdownLimitReached)?_c('gl-disclosure-dropdown-item',{scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('span',{staticClass:\"gl-text-sm !gl-text-gray-300\",attrs:{\"data-testid\":\"limit-reached-msg\"}},[_vm._v(\"\\n          \"+_vm._s(_vm.__('Showing first 50 actions.'))+\"\\n        \")])]},proxy:true}],null,false,340575193)}):_vm._e()]},proxy:true}])},[(_vm.isActionsLoading)?_c('gl-disclosure-dropdown-item',{scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('div',{staticClass:\"gl-flex\"},[_c('gl-loading-icon',{staticClass:\"mr-2\"}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.__('Loading...')))])],1)]},proxy:true}],null,false,800703371)}):_vm._l((_vm.actions),function(action){return _c('gl-disclosure-dropdown-item',{key:action.id,attrs:{\"item\":_vm.jobItem(action)},on:{\"action\":function($event){return _vm.onClickAction(action)}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('div',{staticClass:\"gl-flex gl-flex-wrap gl-justify-between\"},[_vm._v(\"\\n        \"+_vm._s(action.name)+\"\\n        \"),(action.scheduledAt)?_c('span',[_c('gl-icon',{attrs:{\"name\":\"clock\"}}),_vm._v(\" \"),_c('gl-countdown',{attrs:{\"end-date-string\":action.scheduledAt}})],1):_vm._e()])]},proxy:true}],null,true)})})],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!./pipeline_stop_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!./pipeline_stop_modal.vue?vue&type=script&lang=js\"","<script>\nimport { GlLink, GlModal, GlSprintf } from '@gitlab/ui';\nimport { isEmpty } from 'lodash';\nimport { __, s__, sprintf } from '~/locale';\nimport CiIcon from '~/vue_shared/components/ci_icon/ci_icon.vue';\n\n/**\n * Pipeline Stop Modal.\n *\n * Renders the modal used to confirm cancelling a pipeline.\n */\nexport default {\n  components: {\n    GlModal,\n    GlLink,\n    GlSprintf,\n    CiIcon,\n  },\n  props: {\n    pipeline: {\n      type: Object,\n      required: true,\n      deep: true,\n    },\n    showConfirmationModal: {\n      type: Boolean,\n      required: true,\n    },\n  },\n  computed: {\n    hasRef() {\n      return !isEmpty(this.pipeline.ref);\n    },\n    modalTitle() {\n      return sprintf(\n        s__('Pipeline|Stop pipeline #%{pipelineId}?'),\n        {\n          pipelineId: `${this.pipeline.id}`,\n        },\n        false,\n      );\n    },\n    modalText() {\n      return s__(`Pipeline|You're about to stop pipeline #%{pipelineId}.`);\n    },\n    primaryProps() {\n      return {\n        text: s__('Pipeline|Stop pipeline'),\n        attributes: { variant: 'danger' },\n      };\n    },\n    showModal: {\n      get() {\n        return this.showConfirmationModal;\n      },\n      set() {\n        this.$emit('close-modal');\n      },\n    },\n  },\n  methods: {\n    emitSubmit(event) {\n      this.$emit('submit', event);\n    },\n  },\n  cancelProps: { text: __('Cancel') },\n};\n</script>\n<template>\n  <gl-modal\n    v-model=\"showModal\"\n    modal-id=\"confirmation-modal\"\n    :title=\"modalTitle\"\n    :action-primary=\"primaryProps\"\n    :action-cancel=\"$options.cancelProps\"\n    data-testid=\"pipeline-stop-modal\"\n    @primary=\"emitSubmit($event)\"\n  >\n    <p>\n      <gl-sprintf :message=\"modalText\">\n        <template #pipelineId>\n          <strong>{{ pipeline.id }}</strong>\n        </template>\n      </gl-sprintf>\n    </p>\n\n    <p>\n      <ci-icon\n        v-if=\"pipeline.details\"\n        :status=\"pipeline.details.status\"\n        class=\"vertical-align-middle\"\n      />\n\n      <span class=\"font-weight-bold\">{{ __('Pipeline') }}</span>\n\n      <a :href=\"pipeline.path\" class=\"js-pipeline-path link-commit\">#{{ pipeline.id }}</a>\n      <template v-if=\"hasRef\">\n        {{ __('from') }}\n        <a :href=\"pipeline.ref.path\" class=\"link-commit ref-name\">{{ pipeline.ref.name }}</a>\n      </template>\n    </p>\n\n    <template v-if=\"pipeline.commit\">\n      <p>\n        <span class=\"font-weight-bold\">{{ __('Commit') }}</span>\n\n        <gl-link :href=\"pipeline.commit.commit_path\" class=\"js-commit-sha commit-sha link-commit\">\n          {{ pipeline.commit.short_id }}\n        </gl-link>\n      </p>\n      <p>{{ pipeline.commit.title }}</p>\n    </template>\n  </gl-modal>\n</template>\n","import { render, staticRenderFns } from \"./pipeline_stop_modal.vue?vue&type=template&id=2d48a191\"\nimport script from \"./pipeline_stop_modal.vue?vue&type=script&lang=js\"\nexport * from \"./pipeline_stop_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\":\"confirmation-modal\",\"title\":_vm.modalTitle,\"action-primary\":_vm.primaryProps,\"action-cancel\":_vm.$options.cancelProps,\"data-testid\":\"pipeline-stop-modal\"},on:{\"primary\":function($event){return _vm.emitSubmit($event)}},model:{value:(_vm.showModal),callback:function ($$v) {_vm.showModal=$$v},expression:\"showModal\"}},[_c('p',[_c('gl-sprintf',{attrs:{\"message\":_vm.modalText},scopedSlots:_vm._u([{key:\"pipelineId\",fn:function(){return [_c('strong',[_vm._v(_vm._s(_vm.pipeline.id))])]},proxy:true}])})],1),_vm._v(\" \"),_c('p',[(_vm.pipeline.details)?_c('ci-icon',{staticClass:\"vertical-align-middle\",attrs:{\"status\":_vm.pipeline.details.status}}):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.__('Pipeline')))]),_vm._v(\" \"),_c('a',{staticClass:\"js-pipeline-path link-commit\",attrs:{\"href\":_vm.pipeline.path}},[_vm._v(\"#\"+_vm._s(_vm.pipeline.id))]),_vm._v(\" \"),(_vm.hasRef)?[_vm._v(\"\\n      \"+_vm._s(_vm.__('from'))+\"\\n      \"),_c('a',{staticClass:\"link-commit ref-name\",attrs:{\"href\":_vm.pipeline.ref.path}},[_vm._v(_vm._s(_vm.pipeline.ref.name))])]:_vm._e()],2),_vm._v(\" \"),(_vm.pipeline.commit)?[_c('p',[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.__('Commit')))]),_vm._v(\" \"),_c('gl-link',{staticClass:\"js-commit-sha commit-sha link-commit\",attrs:{\"href\":_vm.pipeline.commit.commit_path}},[_vm._v(\"\\n        \"+_vm._s(_vm.pipeline.commit.short_id)+\"\\n      \")])],1),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.pipeline.commit.title))])]:_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!./pipeline_operations.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_operations.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlTooltipDirective } from '@gitlab/ui';\nimport Tracking from '~/tracking';\nimport { BUTTON_TOOLTIP_RETRY, BUTTON_TOOLTIP_CANCEL, TRACKING_CATEGORIES } from '~/ci/constants';\nimport PipelineMultiActions from './pipeline_multi_actions.vue';\nimport PipelinesManualActions from './pipelines_manual_actions.vue';\nimport PipelineStopModal from './pipeline_stop_modal.vue';\n\nexport default {\n  BUTTON_TOOLTIP_RETRY,\n  BUTTON_TOOLTIP_CANCEL,\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  components: {\n    GlButton,\n    PipelineMultiActions,\n    PipelinesManualActions,\n    PipelineStopModal,\n  },\n  mixins: [Tracking.mixin()],\n  props: {\n    pipeline: {\n      type: Object,\n      required: true,\n    },\n  },\n  data() {\n    return {\n      isCanceling: false,\n      isRetrying: false,\n      showConfirmationModal: false,\n      pipelineToCancel: this.pipeline,\n    };\n  },\n  computed: {\n    hasActions() {\n      return (\n        this.pipeline?.details?.has_manual_actions || this.pipeline?.details?.has_scheduled_actions\n      );\n    },\n  },\n  watch: {\n    pipeline() {\n      if (this.isCanceling || this.isRetrying) {\n        this.isCanceling = false;\n        this.isRetrying = false;\n      }\n    },\n  },\n  methods: {\n    onCloseModal() {\n      this.showConfirmationModal = false;\n    },\n    onConfirmCancelPipeline() {\n      this.isCanceling = true;\n      this.showConfirmationModal = false;\n\n      this.$emit('cancel-pipeline', this.pipelineToCancel);\n    },\n    handleCancelClick() {\n      this.showConfirmationModal = true;\n      this.pipelineToCancel = this.pipeline;\n\n      this.trackClick('click_cancel_button');\n    },\n    handleRetryClick() {\n      this.isRetrying = true;\n\n      this.trackClick('click_retry_button');\n\n      this.$emit('retry-pipeline', this.pipeline);\n    },\n    trackClick(action) {\n      this.track(action, { label: TRACKING_CATEGORIES.table });\n    },\n  },\n};\n</script>\n\n<template>\n  <div class=\"gl-text-right\">\n    <pipeline-stop-modal\n      :pipeline=\"pipelineToCancel\"\n      :show-confirmation-modal=\"showConfirmationModal\"\n      @submit=\"onConfirmCancelPipeline\"\n      @close-modal=\"onCloseModal\"\n    />\n\n    <div class=\"btn-group\">\n      <pipelines-manual-actions\n        v-if=\"hasActions\"\n        :iid=\"pipeline.iid\"\n        @refresh-pipeline-table=\"$emit('refresh-pipelines-table')\"\n      />\n\n      <gl-button\n        v-if=\"pipeline.flags.retryable\"\n        v-gl-tooltip.hover\n        :aria-label=\"$options.BUTTON_TOOLTIP_RETRY\"\n        :title=\"$options.BUTTON_TOOLTIP_RETRY\"\n        :disabled=\"isRetrying\"\n        :loading=\"isRetrying\"\n        class=\"js-pipelines-retry-button\"\n        data-testid=\"pipelines-retry-button\"\n        icon=\"retry\"\n        variant=\"default\"\n        category=\"secondary\"\n        @click=\"handleRetryClick\"\n      />\n\n      <gl-button\n        v-if=\"pipeline.flags.cancelable\"\n        v-gl-tooltip.hover\n        :aria-label=\"$options.BUTTON_TOOLTIP_CANCEL\"\n        :title=\"$options.BUTTON_TOOLTIP_CANCEL\"\n        :loading=\"isCanceling\"\n        :disabled=\"isCanceling\"\n        icon=\"cancel\"\n        variant=\"danger\"\n        category=\"primary\"\n        class=\"js-pipelines-cancel-button gl-ml-1\"\n        data-testid=\"pipelines-cancel-button\"\n        @click=\"handleCancelClick\"\n      />\n\n      <pipeline-multi-actions :pipeline-id=\"pipeline.id\" />\n    </div>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./pipeline_operations.vue?vue&type=template&id=8b2494d4\"\nimport script from \"./pipeline_operations.vue?vue&type=script&lang=js\"\nexport * from \"./pipeline_operations.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-text-right\"},[_c('pipeline-stop-modal',{attrs:{\"pipeline\":_vm.pipelineToCancel,\"show-confirmation-modal\":_vm.showConfirmationModal},on:{\"submit\":_vm.onConfirmCancelPipeline,\"close-modal\":_vm.onCloseModal}}),_vm._v(\" \"),_c('div',{staticClass:\"btn-group\"},[(_vm.hasActions)?_c('pipelines-manual-actions',{attrs:{\"iid\":_vm.pipeline.iid},on:{\"refresh-pipeline-table\":function($event){return _vm.$emit('refresh-pipelines-table')}}}):_vm._e(),_vm._v(\" \"),(_vm.pipeline.flags.retryable)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",modifiers:{\"hover\":true}}],staticClass:\"js-pipelines-retry-button\",attrs:{\"aria-label\":_vm.$options.BUTTON_TOOLTIP_RETRY,\"title\":_vm.$options.BUTTON_TOOLTIP_RETRY,\"disabled\":_vm.isRetrying,\"loading\":_vm.isRetrying,\"data-testid\":\"pipelines-retry-button\",\"icon\":\"retry\",\"variant\":\"default\",\"category\":\"secondary\"},on:{\"click\":_vm.handleRetryClick}}):_vm._e(),_vm._v(\" \"),(_vm.pipeline.flags.cancelable)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",modifiers:{\"hover\":true}}],staticClass:\"js-pipelines-cancel-button gl-ml-1\",attrs:{\"aria-label\":_vm.$options.BUTTON_TOOLTIP_CANCEL,\"title\":_vm.$options.BUTTON_TOOLTIP_CANCEL,\"loading\":_vm.isCanceling,\"disabled\":_vm.isCanceling,\"icon\":\"cancel\",\"variant\":\"danger\",\"category\":\"primary\",\"data-testid\":\"pipelines-cancel-button\"},on:{\"click\":_vm.handleCancelClick}}):_vm._e(),_vm._v(\" \"),_c('pipeline-multi-actions',{attrs:{\"pipeline-id\":_vm.pipeline.id}})],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!./pipeline_triggerer.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_triggerer.vue?vue&type=script&lang=js\"","<script>\nimport { GlAvatarLink, GlAvatar, GlTooltipDirective } from '@gitlab/ui';\n\nexport default {\n  components: {\n    GlAvatarLink,\n    GlAvatar,\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  props: {\n    pipeline: {\n      type: Object,\n      required: true,\n    },\n  },\n  computed: {\n    user() {\n      return this.pipeline.user;\n    },\n  },\n};\n</script>\n<template>\n  <div class=\"pipeline-triggerer\" data-testid=\"pipeline-triggerer\">\n    <gl-avatar-link v-if=\"user\" v-gl-tooltip :href=\"user.path\" :title=\"user.name\" class=\"gl-ml-3\">\n      <gl-avatar :size=\"32\" :src=\"user.avatar_url\" />\n    </gl-avatar-link>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./pipeline_triggerer.vue?vue&type=template&id=469f9310\"\nimport script from \"./pipeline_triggerer.vue?vue&type=script&lang=js\"\nexport * from \"./pipeline_triggerer.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:\"pipeline-triggerer\",attrs:{\"data-testid\":\"pipeline-triggerer\"}},[(_vm.user)?_c('gl-avatar-link',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-ml-3\",attrs:{\"href\":_vm.user.path,\"title\":_vm.user.name}},[_c('gl-avatar',{attrs:{\"size\":32,\"src\":_vm.user.avatar_url}})],1):_vm._e()],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!./pipeline_labels.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_labels.vue?vue&type=script&lang=js\"","<script>\nimport { GlLink, GlPopover, GlSprintf, GlTooltipDirective, GlBadge } from '@gitlab/ui';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport { SCHEDULE_ORIGIN, API_ORIGIN, TRIGGER_ORIGIN } from '../constants';\n\nexport default {\n  components: {\n    GlBadge,\n    GlLink,\n    GlPopover,\n    GlSprintf,\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  inject: {\n    pipelineSchedulesPath: {\n      default: '',\n    },\n  },\n  props: {\n    pipeline: {\n      type: Object,\n      required: true,\n    },\n  },\n  computed: {\n    isScheduled() {\n      return this.pipeline.source === SCHEDULE_ORIGIN;\n    },\n    isTriggered() {\n      return this.pipeline.source === TRIGGER_ORIGIN;\n    },\n    isForked() {\n      return this.pipeline?.project?.forked;\n    },\n    showMergedResultsBadge() {\n      // A merge train pipeline is technically also a merged results pipeline,\n      // but we want the badges to be mutually exclusive.\n      return (\n        this.pipeline.flags.merged_result_pipeline && !this.pipeline.flags.merge_train_pipeline\n      );\n    },\n    autoDevopsTagId() {\n      return `pipeline-url-autodevops-${this.pipeline.id}`;\n    },\n    autoDevopsHelpPath() {\n      return helpPagePath('topics/autodevops/index.md');\n    },\n    isApi() {\n      return this.pipeline.source === API_ORIGIN;\n    },\n  },\n};\n</script>\n<template>\n  <div class=\"label-container gl-mt-1 gl-flex gl-flex-wrap gl-gap-2\">\n    <gl-badge\n      v-if=\"isScheduled\"\n      v-gl-tooltip\n      :href=\"pipelineSchedulesPath\"\n      target=\"__blank\"\n      :title=\"__('This pipeline was created by a schedule.')\"\n      variant=\"info\"\n      data-testid=\"pipeline-url-scheduled\"\n      >{{ __('scheduled') }}</gl-badge\n    >\n    <gl-badge\n      v-if=\"isTriggered\"\n      v-gl-tooltip\n      :title=\"__('This pipeline was created by an API call authenticated with a trigger token')\"\n      variant=\"info\"\n      data-testid=\"pipeline-url-triggered\"\n      >{{ __('trigger token') }}</gl-badge\n    >\n    <gl-badge\n      v-if=\"pipeline.flags.latest\"\n      v-gl-tooltip\n      :title=\"__('Latest pipeline for the most recent commit on this branch')\"\n      variant=\"success\"\n      data-testid=\"pipeline-url-latest\"\n      >{{ __('latest') }}</gl-badge\n    >\n    <gl-badge\n      v-if=\"pipeline.flags.merge_train_pipeline\"\n      v-gl-tooltip\n      :title=\"\n        s__(\n          'Pipeline|This pipeline ran on the contents of the merge request combined with the contents of all other merge requests queued for merging into the target branch.',\n        )\n      \"\n      variant=\"info\"\n      data-testid=\"pipeline-url-train\"\n      >{{ s__('Pipeline|merge train') }}</gl-badge\n    >\n    <gl-badge\n      v-if=\"pipeline.flags.yaml_errors\"\n      v-gl-tooltip\n      :title=\"pipeline.yaml_errors\"\n      variant=\"danger\"\n      data-testid=\"pipeline-url-yaml\"\n      >{{ __('yaml invalid') }}</gl-badge\n    >\n    <gl-badge\n      v-if=\"pipeline.flags.failure_reason\"\n      v-gl-tooltip\n      :title=\"pipeline.failure_reason\"\n      variant=\"danger\"\n      data-testid=\"pipeline-url-failure\"\n      >{{ __('error') }}</gl-badge\n    >\n    <template v-if=\"pipeline.flags.auto_devops\">\n      <gl-link\n        :id=\"autoDevopsTagId\"\n        tabindex=\"0\"\n        data-testid=\"pipeline-url-autodevops\"\n        role=\"button\"\n      >\n        <gl-badge variant=\"info\">\n          {{ __('Auto DevOps') }}\n        </gl-badge>\n      </gl-link>\n      <gl-popover :target=\"autoDevopsTagId\" triggers=\"focus\" placement=\"top\">\n        <template #title>\n          <div class=\"gl-font-normal gl-leading-normal\">\n            <gl-sprintf\n              :message=\"\n                __(\n                  'This pipeline makes use of a predefined CI/CD configuration enabled by %{strongStart}Auto DevOps.%{strongEnd}',\n                )\n              \"\n            >\n              <template #strong=\"{ content }\">\n                <b>{{ content }}</b>\n              </template>\n            </gl-sprintf>\n          </div>\n        </template>\n        <gl-link\n          :href=\"autoDevopsHelpPath\"\n          data-testid=\"pipeline-url-autodevops-link\"\n          target=\"_blank\"\n        >\n          {{ __('Learn more about Auto DevOps') }}\n        </gl-link>\n      </gl-popover>\n    </template>\n\n    <gl-badge v-if=\"pipeline.flags.stuck\" variant=\"warning\" data-testid=\"pipeline-url-stuck\">{{\n      __('stuck')\n    }}</gl-badge>\n    <gl-badge\n      v-if=\"pipeline.flags.detached_merge_request_pipeline\"\n      v-gl-tooltip\n      :title=\"\n        s__(\n          `Pipeline|This pipeline ran on the contents of the merge request's source branch, not the target branch.`,\n        )\n      \"\n      variant=\"info\"\n      data-testid=\"pipeline-url-detached\"\n      >{{ s__('Pipeline|merge request') }}</gl-badge\n    >\n    <gl-badge\n      v-if=\"showMergedResultsBadge\"\n      v-gl-tooltip\n      :title=\"\n        s__(\n          `Pipeline|This pipeline ran on the contents of the merge request combined with the contents of the target branch.`,\n        )\n      \"\n      variant=\"info\"\n      data-testid=\"pipeline-url-merged-results\"\n      >{{ s__('Pipeline|merged results') }}</gl-badge\n    >\n    <gl-badge\n      v-if=\"isForked\"\n      v-gl-tooltip\n      :title=\"__('Pipeline ran in fork of project')\"\n      variant=\"info\"\n      data-testid=\"pipeline-url-fork\"\n      >{{ __('fork') }}</gl-badge\n    >\n    <gl-badge\n      v-if=\"isApi\"\n      v-gl-tooltip\n      :title=\"__('This pipeline was triggered using the api')\"\n      variant=\"info\"\n      data-testid=\"pipeline-api-badge\"\n      >{{ s__('Pipeline|api') }}</gl-badge\n    >\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./pipeline_labels.vue?vue&type=template&id=20bafd32\"\nimport script from \"./pipeline_labels.vue?vue&type=script&lang=js\"\nexport * from \"./pipeline_labels.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:\"label-container gl-mt-1 gl-flex gl-flex-wrap gl-gap-2\"},[(_vm.isScheduled)?_c('gl-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"href\":_vm.pipelineSchedulesPath,\"target\":\"__blank\",\"title\":_vm.__('This pipeline was created by a schedule.'),\"variant\":\"info\",\"data-testid\":\"pipeline-url-scheduled\"}},[_vm._v(_vm._s(_vm.__('scheduled')))]):_vm._e(),_vm._v(\" \"),(_vm.isTriggered)?_c('gl-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"title\":_vm.__('This pipeline was created by an API call authenticated with a trigger token'),\"variant\":\"info\",\"data-testid\":\"pipeline-url-triggered\"}},[_vm._v(_vm._s(_vm.__('trigger token')))]):_vm._e(),_vm._v(\" \"),(_vm.pipeline.flags.latest)?_c('gl-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"title\":_vm.__('Latest pipeline for the most recent commit on this branch'),\"variant\":\"success\",\"data-testid\":\"pipeline-url-latest\"}},[_vm._v(_vm._s(_vm.__('latest')))]):_vm._e(),_vm._v(\" \"),(_vm.pipeline.flags.merge_train_pipeline)?_c('gl-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"title\":_vm.s__(\n        'Pipeline|This pipeline ran on the contents of the merge request combined with the contents of all other merge requests queued for merging into the target branch.',\n      ),\"variant\":\"info\",\"data-testid\":\"pipeline-url-train\"}},[_vm._v(_vm._s(_vm.s__('Pipeline|merge train')))]):_vm._e(),_vm._v(\" \"),(_vm.pipeline.flags.yaml_errors)?_c('gl-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"title\":_vm.pipeline.yaml_errors,\"variant\":\"danger\",\"data-testid\":\"pipeline-url-yaml\"}},[_vm._v(_vm._s(_vm.__('yaml invalid')))]):_vm._e(),_vm._v(\" \"),(_vm.pipeline.flags.failure_reason)?_c('gl-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"title\":_vm.pipeline.failure_reason,\"variant\":\"danger\",\"data-testid\":\"pipeline-url-failure\"}},[_vm._v(_vm._s(_vm.__('error')))]):_vm._e(),_vm._v(\" \"),(_vm.pipeline.flags.auto_devops)?[_c('gl-link',{attrs:{\"id\":_vm.autoDevopsTagId,\"tabindex\":\"0\",\"data-testid\":\"pipeline-url-autodevops\",\"role\":\"button\"}},[_c('gl-badge',{attrs:{\"variant\":\"info\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.__('Auto DevOps'))+\"\\n      \")])],1),_vm._v(\" \"),_c('gl-popover',{attrs:{\"target\":_vm.autoDevopsTagId,\"triggers\":\"focus\",\"placement\":\"top\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('div',{staticClass:\"gl-font-normal gl-leading-normal\"},[_c('gl-sprintf',{attrs:{\"message\":_vm.__(\n                'This pipeline makes use of a predefined CI/CD configuration enabled by %{strongStart}Auto DevOps.%{strongEnd}',\n              )},scopedSlots:_vm._u([{key:\"strong\",fn:function({ content }){return [_c('b',[_vm._v(_vm._s(content))])]}}],null,false,1478500124)})],1)]},proxy:true}],null,false,2946223184)},[_vm._v(\" \"),_c('gl-link',{attrs:{\"href\":_vm.autoDevopsHelpPath,\"data-testid\":\"pipeline-url-autodevops-link\",\"target\":\"_blank\"}},[_vm._v(\"\\n        \"+_vm._s(_vm.__('Learn more about Auto DevOps'))+\"\\n      \")])],1)]:_vm._e(),_vm._v(\" \"),(_vm.pipeline.flags.stuck)?_c('gl-badge',{attrs:{\"variant\":\"warning\",\"data-testid\":\"pipeline-url-stuck\"}},[_vm._v(_vm._s(_vm.__('stuck')))]):_vm._e(),_vm._v(\" \"),(_vm.pipeline.flags.detached_merge_request_pipeline)?_c('gl-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"title\":_vm.s__(\n        `Pipeline|This pipeline ran on the contents of the merge request's source branch, not the target branch.`,\n      ),\"variant\":\"info\",\"data-testid\":\"pipeline-url-detached\"}},[_vm._v(_vm._s(_vm.s__('Pipeline|merge request')))]):_vm._e(),_vm._v(\" \"),(_vm.showMergedResultsBadge)?_c('gl-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"title\":_vm.s__(\n        `Pipeline|This pipeline ran on the contents of the merge request combined with the contents of the target branch.`,\n      ),\"variant\":\"info\",\"data-testid\":\"pipeline-url-merged-results\"}},[_vm._v(_vm._s(_vm.s__('Pipeline|merged results')))]):_vm._e(),_vm._v(\" \"),(_vm.isForked)?_c('gl-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"title\":_vm.__('Pipeline ran in fork of project'),\"variant\":\"info\",\"data-testid\":\"pipeline-url-fork\"}},[_vm._v(_vm._s(_vm.__('fork')))]):_vm._e(),_vm._v(\" \"),(_vm.isApi)?_c('gl-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"title\":_vm.__('This pipeline was triggered using the api'),\"variant\":\"info\",\"data-testid\":\"pipeline-api-badge\"}},[_vm._v(_vm._s(_vm.s__('Pipeline|api')))]):_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!./pipeline_url.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_url.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlLink, GlTooltipDirective } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport Tracking from '~/tracking';\nimport TooltipOnTruncate from '~/vue_shared/components/tooltip_on_truncate/tooltip_on_truncate.vue';\nimport UserAvatarLink from '~/vue_shared/components/user_avatar/user_avatar_link.vue';\nimport { ICONS, PIPELINE_ID_KEY, PIPELINE_IID_KEY, TRACKING_CATEGORIES } from '~/ci/constants';\nimport PipelineLabels from './pipeline_labels.vue';\n\nexport default {\n  components: {\n    GlIcon,\n    GlLink,\n    PipelineLabels,\n    TooltipOnTruncate,\n    UserAvatarLink,\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  mixins: [Tracking.mixin()],\n  props: {\n    pipeline: {\n      type: Object,\n      required: true,\n    },\n    pipelineIdType: {\n      type: String,\n      required: false,\n      default: PIPELINE_ID_KEY,\n      validator(value) {\n        return value === PIPELINE_IID_KEY || value === PIPELINE_ID_KEY;\n      },\n    },\n    refClass: {\n      type: String,\n      required: false,\n      default: '',\n    },\n  },\n  computed: {\n    mergeRequestRef() {\n      return this.pipeline?.merge_request;\n    },\n    commitRef() {\n      return this.pipeline?.ref;\n    },\n    commitTag() {\n      return this.commitRef?.tag;\n    },\n    commitUrl() {\n      return this.pipeline?.commit?.commit_path;\n    },\n    commitShortSha() {\n      return this.pipeline?.commit?.short_id;\n    },\n    refUrl() {\n      return this.commitRef?.ref_url || this.commitRef?.path;\n    },\n    tooltipTitle() {\n      return this.mergeRequestRef?.title || this.commitRef?.name;\n    },\n    commitAuthor() {\n      let commitAuthorInformation;\n      const pipelineCommit = this.pipeline?.commit;\n      const pipelineCommitAuthor = pipelineCommit?.author;\n\n      if (!pipelineCommit) {\n        return null;\n      }\n\n      // 1. person who is an author of a commit might be a GitLab user\n      if (pipelineCommitAuthor) {\n        // 2. if person who is an author of a commit is a GitLab user\n        // they can have a GitLab avatar\n        if (pipelineCommitAuthor?.avatar_url) {\n          commitAuthorInformation = pipelineCommitAuthor;\n\n          // 3. If GitLab user does not have avatar, they might have a Gravatar\n        } else if (pipelineCommit?.author_gravatar_url) {\n          commitAuthorInformation = {\n            ...pipelineCommitAuthor,\n            avatar_url: pipelineCommit.author_gravatar_url,\n          };\n        }\n        // 4. If committer is not a GitLab User, they can have a Gravatar\n      } else {\n        commitAuthorInformation = {\n          avatar_url: pipelineCommit?.author_gravatar_url,\n          path: `mailto:${pipelineCommit?.author_email}`,\n          username: pipelineCommit.author_name,\n        };\n      }\n\n      return commitAuthorInformation;\n    },\n    commitIcon() {\n      let name = '';\n\n      if (this.commitTag) {\n        name = ICONS.TAG;\n      } else if (this.mergeRequestRef) {\n        name = ICONS.MR;\n      } else {\n        name = ICONS.BRANCH;\n      }\n\n      return name;\n    },\n    commitIconTooltipTitle() {\n      switch (this.commitIcon) {\n        case ICONS.TAG:\n          return __('Tag');\n        case ICONS.MR:\n          return __('Merge Request');\n        default:\n          return __('Branch');\n      }\n    },\n    commitTitle() {\n      return this.pipeline?.commit?.title;\n    },\n    pipelineIdentifier() {\n      const { name, path, pipeline_schedule: pipelineSchedule } = this.pipeline || {};\n\n      // pipeline name should take priority over\n      // pipeline schedule description\n      if (name) {\n        return {\n          text: name,\n          link: path,\n        };\n      }\n\n      if (pipelineSchedule) {\n        return {\n          text: pipelineSchedule.description,\n          link: pipelineSchedule.path,\n        };\n      }\n\n      return false;\n    },\n  },\n  methods: {\n    trackClick(action) {\n      this.track(action, { label: TRACKING_CATEGORIES.table });\n    },\n  },\n};\n</script>\n<template>\n  <div class=\"pipeline-tags\" data-testid=\"pipeline-url-table-cell\">\n    <div v-if=\"pipelineIdentifier\" class=\"gl-mb-2\" data-testid=\"pipeline-identifier-container\">\n      <span class=\"gl-flex\">\n        <tooltip-on-truncate\n          :title=\"pipelineIdentifier.text\"\n          class=\"gl-grow gl-truncate gl-text-default\"\n        >\n          <gl-link :href=\"pipelineIdentifier.link\" data-testid=\"pipeline-identifier-link\">{{\n            pipelineIdentifier.text\n          }}</gl-link>\n        </tooltip-on-truncate>\n      </span>\n    </div>\n\n    <div\n      v-if=\"!pipelineIdentifier\"\n      class=\"commit-title gl-mb-2\"\n      data-testid=\"commit-title-container\"\n    >\n      <span v-if=\"commitTitle\" class=\"gl-flex\">\n        <tooltip-on-truncate\n          :title=\"commitTitle\"\n          class=\"-gl-mb-3 -gl-ml-3 -gl-mr-3 -gl-mt-3 gl-grow gl-truncate gl-p-3\"\n        >\n          <gl-link\n            :href=\"commitUrl\"\n            class=\"commit-row-message\"\n            data-testid=\"commit-title\"\n            @click=\"trackClick('click_commit_title')\"\n            >{{ commitTitle }}</gl-link\n          >\n        </tooltip-on-truncate>\n      </span>\n      <span v-else class=\"gl-text-subtle\">{{ __(\"Can't find HEAD commit for this branch\") }}</span>\n    </div>\n\n    <div class=\"gl-mb-2\">\n      <gl-link\n        :href=\"pipeline.path\"\n        class=\"gl-mr-1\"\n        data-testid=\"pipeline-url-link\"\n        @click=\"trackClick('click_pipeline_id')\"\n        >#{{ pipeline[pipelineIdType] }}</gl-link\n      >\n      <!--Commit row-->\n      <div class=\"gl-inline-flex gl-rounded-base gl-bg-gray-50 gl-px-2 gl-text-subtle\">\n        <tooltip-on-truncate :title=\"tooltipTitle\" truncate-target=\"child\" placement=\"top\">\n          <gl-icon\n            v-gl-tooltip\n            :name=\"commitIcon\"\n            :title=\"commitIconTooltipTitle\"\n            :size=\"12\"\n            data-testid=\"commit-icon-type\"\n            variant=\"subtle\"\n          />\n          <gl-link\n            v-if=\"mergeRequestRef\"\n            :href=\"mergeRequestRef.path\"\n            class=\"gl-text-sm !gl-text-subtle gl-font-monospace\"\n            :class=\"refClass\"\n            data-testid=\"merge-request-ref\"\n            @click=\"trackClick('click_mr_ref')\"\n            >{{ mergeRequestRef.iid }}</gl-link\n          >\n          <gl-link\n            v-else\n            :href=\"refUrl\"\n            class=\"gl-text-sm !gl-text-subtle gl-font-monospace\"\n            :class=\"refClass\"\n            data-testid=\"commit-ref-name\"\n            @click=\"trackClick('click_commit_name')\"\n            >{{ commitRef.name }}</gl-link\n          >\n        </tooltip-on-truncate>\n      </div>\n\n      <div class=\"gl-inline-block gl-rounded-base gl-bg-gray-50 gl-px-2 gl-text-sm gl-text-default\">\n        <gl-icon\n          v-gl-tooltip\n          name=\"commit\"\n          class=\"commit-icon gl-mr-1\"\n          :title=\"__('Commit')\"\n          :size=\"12\"\n          data-testid=\"commit-icon\"\n        />\n        <gl-link\n          :href=\"commitUrl\"\n          class=\"gl-mr-0 gl-text-sm !gl-text-subtle gl-font-monospace\"\n          data-testid=\"commit-short-sha\"\n          @click=\"trackClick('click_commit_sha')\"\n          >{{ commitShortSha }}</gl-link\n        >\n      </div>\n\n      <user-avatar-link\n        v-if=\"commitAuthor\"\n        :link-href=\"commitAuthor.path\"\n        :img-src=\"commitAuthor.avatar_url\"\n        :img-size=\"16\"\n        :img-alt=\"commitAuthor.name\"\n        :tooltip-text=\"commitAuthor.name\"\n        class=\"gl-ml-1\"\n      />\n      <!--End of commit row-->\n    </div>\n    <pipeline-labels :pipeline=\"pipeline\" />\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./pipeline_url.vue?vue&type=template&id=5545556a\"\nimport script from \"./pipeline_url.vue?vue&type=script&lang=js\"\nexport * from \"./pipeline_url.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:\"pipeline-tags\",attrs:{\"data-testid\":\"pipeline-url-table-cell\"}},[(_vm.pipelineIdentifier)?_c('div',{staticClass:\"gl-mb-2\",attrs:{\"data-testid\":\"pipeline-identifier-container\"}},[_c('span',{staticClass:\"gl-flex\"},[_c('tooltip-on-truncate',{staticClass:\"gl-grow gl-truncate gl-text-default\",attrs:{\"title\":_vm.pipelineIdentifier.text}},[_c('gl-link',{attrs:{\"href\":_vm.pipelineIdentifier.link,\"data-testid\":\"pipeline-identifier-link\"}},[_vm._v(_vm._s(_vm.pipelineIdentifier.text))])],1)],1)]):_vm._e(),_vm._v(\" \"),(!_vm.pipelineIdentifier)?_c('div',{staticClass:\"commit-title gl-mb-2\",attrs:{\"data-testid\":\"commit-title-container\"}},[(_vm.commitTitle)?_c('span',{staticClass:\"gl-flex\"},[_c('tooltip-on-truncate',{staticClass:\"-gl-mb-3 -gl-ml-3 -gl-mr-3 -gl-mt-3 gl-grow gl-truncate gl-p-3\",attrs:{\"title\":_vm.commitTitle}},[_c('gl-link',{staticClass:\"commit-row-message\",attrs:{\"href\":_vm.commitUrl,\"data-testid\":\"commit-title\"},on:{\"click\":function($event){return _vm.trackClick('click_commit_title')}}},[_vm._v(_vm._s(_vm.commitTitle))])],1)],1):_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(_vm._s(_vm.__(\"Can't find HEAD commit for this branch\")))])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"gl-mb-2\"},[_c('gl-link',{staticClass:\"gl-mr-1\",attrs:{\"href\":_vm.pipeline.path,\"data-testid\":\"pipeline-url-link\"},on:{\"click\":function($event){return _vm.trackClick('click_pipeline_id')}}},[_vm._v(\"#\"+_vm._s(_vm.pipeline[_vm.pipelineIdType]))]),_vm._v(\" \"),_c('div',{staticClass:\"gl-inline-flex gl-rounded-base gl-bg-gray-50 gl-px-2 gl-text-subtle\"},[_c('tooltip-on-truncate',{attrs:{\"title\":_vm.tooltipTitle,\"truncate-target\":\"child\",\"placement\":\"top\"}},[_c('gl-icon',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"name\":_vm.commitIcon,\"title\":_vm.commitIconTooltipTitle,\"size\":12,\"data-testid\":\"commit-icon-type\",\"variant\":\"subtle\"}}),_vm._v(\" \"),(_vm.mergeRequestRef)?_c('gl-link',{staticClass:\"gl-text-sm !gl-text-subtle gl-font-monospace\",class:_vm.refClass,attrs:{\"href\":_vm.mergeRequestRef.path,\"data-testid\":\"merge-request-ref\"},on:{\"click\":function($event){return _vm.trackClick('click_mr_ref')}}},[_vm._v(_vm._s(_vm.mergeRequestRef.iid))]):_c('gl-link',{staticClass:\"gl-text-sm !gl-text-subtle gl-font-monospace\",class:_vm.refClass,attrs:{\"href\":_vm.refUrl,\"data-testid\":\"commit-ref-name\"},on:{\"click\":function($event){return _vm.trackClick('click_commit_name')}}},[_vm._v(_vm._s(_vm.commitRef.name))])],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"gl-inline-block gl-rounded-base gl-bg-gray-50 gl-px-2 gl-text-sm gl-text-default\"},[_c('gl-icon',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"commit-icon gl-mr-1\",attrs:{\"name\":\"commit\",\"title\":_vm.__('Commit'),\"size\":12,\"data-testid\":\"commit-icon\"}}),_vm._v(\" \"),_c('gl-link',{staticClass:\"gl-mr-0 gl-text-sm !gl-text-subtle gl-font-monospace\",attrs:{\"href\":_vm.commitUrl,\"data-testid\":\"commit-short-sha\"},on:{\"click\":function($event){return _vm.trackClick('click_commit_sha')}}},[_vm._v(_vm._s(_vm.commitShortSha))])],1),_vm._v(\" \"),(_vm.commitAuthor)?_c('user-avatar-link',{staticClass:\"gl-ml-1\",attrs:{\"link-href\":_vm.commitAuthor.path,\"img-src\":_vm.commitAuthor.avatar_url,\"img-size\":16,\"img-alt\":_vm.commitAuthor.name,\"tooltip-text\":_vm.commitAuthor.name}}):_vm._e()],1),_vm._v(\" \"),_c('pipeline-labels',{attrs:{\"pipeline\":_vm.pipeline}})],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!./time_ago.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!./time_ago.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { formatTime } from '~/lib/utils/datetime_utility';\nimport timeagoMixin from '~/vue_shared/mixins/timeago';\n\nexport default {\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  components: { GlIcon },\n  mixins: [timeagoMixin],\n  props: {\n    pipeline: {\n      type: Object,\n      required: true,\n    },\n    fontSize: {\n      type: String,\n      required: false,\n      default: 'gl-text-sm',\n      validator: (fontSize) => ['gl-text-sm', 'gl-font-md'].includes(fontSize),\n    },\n  },\n  computed: {\n    duration() {\n      return this.pipeline?.details?.duration;\n    },\n    durationFormatted() {\n      return formatTime(this.duration * 1000);\n    },\n    finishedTime() {\n      return this.pipeline?.details?.finished_at || this.pipeline?.finishedAt;\n    },\n  },\n};\n</script>\n<template>\n  <div class=\"gl-flex gl-flex-col gl-items-end lg:gl-items-start\" :class=\"fontSize\">\n    <p\n      v-if=\"duration\"\n      class=\"gl-m-0 gl-inline-flex gl-items-center gl-whitespace-nowrap gl-text-subtle\"\n      data-testid=\"duration\"\n    >\n      <gl-icon name=\"timer\" class=\"gl-mr-2\" :size=\"12\" />\n      {{ durationFormatted }}\n    </p>\n\n    <p\n      v-if=\"finishedTime\"\n      class=\"gl-m-0 gl-inline-flex gl-items-center gl-whitespace-nowrap gl-text-subtle\"\n      data-testid=\"finished-at\"\n    >\n      <gl-icon name=\"calendar\" class=\"gl-mr-2\" :size=\"12\" data-testid=\"calendar-icon\" />\n\n      <time\n        v-gl-tooltip\n        :title=\"tooltipTitle(finishedTime)\"\n        :datetime=\"finishedTime\"\n        data-placement=\"top\"\n        data-container=\"body\"\n      >\n        {{ timeFormatted(finishedTime) }}\n      </time>\n    </p>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./time_ago.vue?vue&type=template&id=11c81d51\"\nimport script from \"./time_ago.vue?vue&type=script&lang=js\"\nexport * from \"./time_ago.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-flex-col gl-items-end lg:gl-items-start\",class:_vm.fontSize},[(_vm.duration)?_c('p',{staticClass:\"gl-m-0 gl-inline-flex gl-items-center gl-whitespace-nowrap gl-text-subtle\",attrs:{\"data-testid\":\"duration\"}},[_c('gl-icon',{staticClass:\"gl-mr-2\",attrs:{\"name\":\"timer\",\"size\":12}}),_vm._v(\"\\n    \"+_vm._s(_vm.durationFormatted)+\"\\n  \")],1):_vm._e(),_vm._v(\" \"),(_vm.finishedTime)?_c('p',{staticClass:\"gl-m-0 gl-inline-flex gl-items-center gl-whitespace-nowrap gl-text-subtle\",attrs:{\"data-testid\":\"finished-at\"}},[_c('gl-icon',{staticClass:\"gl-mr-2\",attrs:{\"name\":\"calendar\",\"size\":12,\"data-testid\":\"calendar-icon\"}}),_vm._v(\" \"),_c('time',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"title\":_vm.tooltipTitle(_vm.finishedTime),\"datetime\":_vm.finishedTime,\"data-placement\":\"top\",\"data-container\":\"body\"}},[_vm._v(\"\\n      \"+_vm._s(_vm.timeFormatted(_vm.finishedTime))+\"\\n    \")])],1):_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!./pipeline_status_badge.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pipeline_status_badge.vue?vue&type=script&lang=js\"","<script>\nimport { TRACKING_CATEGORIES } from '~/ci/constants';\nimport CiIcon from '~/vue_shared/components/ci_icon/ci_icon.vue';\nimport Tracking from '~/tracking';\nimport PipelinesTimeago from './time_ago.vue';\n\nexport default {\n  components: {\n    CiIcon,\n    PipelinesTimeago,\n  },\n  mixins: [Tracking.mixin()],\n  props: {\n    pipeline: {\n      type: Object,\n      required: true,\n    },\n  },\n  computed: {\n    pipelineStatus() {\n      return this.pipeline?.details?.status ?? {};\n    },\n  },\n  methods: {\n    trackClick() {\n      this.track('click_ci_status_badge', { label: TRACKING_CATEGORIES.table });\n    },\n  },\n};\n</script>\n\n<template>\n  <div>\n    <ci-icon\n      class=\"gl-mb-2\"\n      :status=\"pipelineStatus\"\n      show-status-text\n      @ciStatusBadgeClick=\"trackClick\"\n    />\n    <pipelines-timeago :pipeline=\"pipeline\" />\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./pipeline_status_badge.vue?vue&type=template&id=31de1773\"\nimport script from \"./pipeline_status_badge.vue?vue&type=script&lang=js\"\nexport * from \"./pipeline_status_badge.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('ci-icon',{staticClass:\"gl-mb-2\",attrs:{\"status\":_vm.pipelineStatus,\"show-status-text\":\"\"},on:{\"ciStatusBadgeClick\":_vm.trackClick}}),_vm._v(\" \"),_c('pipelines-timeago',{attrs:{\"pipeline\":_vm.pipeline}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlSkeletonLoader, GlTableLite, GlTooltipDirective } from '@gitlab/ui';\nimport { GlBreakpointInstance } from '@gitlab/ui/dist/utils';\nimport { cleanLeadingSeparator } from '~/lib/utils/url_utility';\nimport { s__, __ } from '~/locale';\nimport Tracking from '~/tracking';\nimport { PIPELINE_ID_KEY, PIPELINE_IID_KEY, TRACKING_CATEGORIES } from '~/ci/constants';\nimport { keepLatestDownstreamPipelines } from '~/ci/pipeline_details/utils/parsing_utils';\nimport PipelineFailedJobsWidget from '~/ci/pipelines_page/components/failure_widget/pipeline_failed_jobs_widget.vue';\nimport PipelineMiniGraph from '~/ci/pipeline_mini_graph/pipeline_mini_graph.vue';\nimport PipelineOperations from '../pipelines_page/components/pipeline_operations.vue';\nimport PipelineTriggerer from '../pipelines_page/components/pipeline_triggerer.vue';\nimport PipelineUrl from '../pipelines_page/components/pipeline_url.vue';\nimport PipelineStatusBadge from '../pipelines_page/components/pipeline_status_badge.vue';\n\nconst HIDE_TD_ON_MOBILE = '!gl-hidden lg:!gl-table-cell';\n\n/**\n * Pipelines Table\n *\n * Presentational component of a table of pipelines. This component does not\n * fetch the list of pipelines and instead expects it as a prop.\n * GraphQL actions for pipelines, such as retrying, canceling, etc.\n * are handled within this component.\n *\n * Use this `legacy_pipelines_table_wrapper` if you need a fully functional REST component.\n *\n * IMPORTANT: When using this component, make sure to handle the following events:\n * 1- @refresh-pipeline-table\n * 2- @cancel-pipeline\n * 3- @retry-pipeline\n *\n */\n\nexport default {\n  name: 'PipelinesTable',\n  cellHeight: 50,\n  components: {\n    GlSkeletonLoader,\n    GlTableLite,\n    PipelineFailedJobsWidget,\n    PipelineMiniGraph,\n    PipelineOperations,\n    PipelineStatusBadge,\n    PipelineTriggerer,\n    PipelineUrl,\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  mixins: [Tracking.mixin()],\n  inject: {\n    useFailedJobsWidget: {\n      default: false,\n    },\n  },\n  props: {\n    isCreatingPipeline: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    pipelines: {\n      type: Array,\n      required: true,\n    },\n    pipelineIdType: {\n      type: String,\n      required: false,\n      default: PIPELINE_ID_KEY,\n      validator(value) {\n        return value === PIPELINE_IID_KEY || value === PIPELINE_ID_KEY;\n      },\n    },\n  },\n  computed: {\n    isMobile() {\n      return ['md', 'sm', 'xs'].includes(GlBreakpointInstance.getBreakpointSize());\n    },\n    tableFields() {\n      return [\n        {\n          key: 'status',\n          label: s__('Pipeline|Status'),\n          columnClass: 'gl-w-3/20',\n          tdClass: this.tdClasses,\n          thAttr: { 'data-testid': 'status-th' },\n        },\n        {\n          key: 'pipeline',\n          label: __('Pipeline'),\n          tdClass: `${this.tdClasses}`,\n          columnClass: 'gl-w-6/20',\n          thAttr: { 'data-testid': 'pipeline-th' },\n        },\n        {\n          key: 'triggerer',\n          label: s__('Pipeline|Created by'),\n          tdClass: `${this.tdClasses} ${HIDE_TD_ON_MOBILE}`,\n          columnClass: 'gl-w-3/20',\n          thAttr: { 'data-testid': 'triggerer-th' },\n        },\n        {\n          key: 'stages',\n          label: s__('Pipeline|Stages'),\n          tdClass: this.tdClasses,\n          columnClass: 'gl-w-5/20',\n          thAttr: { 'data-testid': 'stages-th' },\n        },\n        {\n          key: 'actions',\n          tdClass: this.tdClasses,\n          columnClass: 'gl-w-4/20',\n          thAttr: { 'data-testid': 'actions-th' },\n        },\n      ];\n    },\n    tdClasses() {\n      return '!gl-border-none';\n    },\n    pipelinesWithDetails() {\n      let { pipelines } = this;\n\n      if (this.isCreatingPipeline) {\n        pipelines = [{ isLoading: true }, ...this.pipelines];\n      }\n\n      if (this.useFailedJobsWidget) {\n        pipelines = pipelines.map((p) => {\n          return p.failed_builds_count > 0 ? { ...p, _showDetails: true } : p;\n        });\n      }\n\n      return pipelines;\n    },\n  },\n  methods: {\n    cellWidth(ref) {\n      return this.$refs[ref]?.offsetWidth;\n    },\n    displayFailedJobsWidget(item) {\n      return !item.isLoading && this.useFailedJobsWidget;\n    },\n    failedJobsCount(pipeline) {\n      return pipeline?.failed_builds_count || 0;\n    },\n    getDownstreamPipelines(pipeline) {\n      const downstream = pipeline.triggered;\n      return keepLatestDownstreamPipelines(downstream);\n    },\n    getProjectPath(item) {\n      return cleanLeadingSeparator(item.project.full_path);\n    },\n    getStages(item) {\n      return item?.details?.stages || [];\n    },\n    onCancelPipeline(pipeline) {\n      this.$emit('cancel-pipeline', pipeline);\n    },\n    onRefreshPipelinesTable() {\n      this.$emit('refresh-pipelines-table');\n    },\n    onRetryPipeline(pipeline) {\n      this.$emit('retry-pipeline', pipeline);\n    },\n    rowClass(item) {\n      return this.displayFailedJobsWidget(item) && this.failedJobsCount(item) > 0\n        ? ''\n        : '!gl-border-b';\n    },\n    setLoaderPosition(ref) {\n      if (this.isMobile) {\n        return this.cellWidth(ref) / 2;\n      }\n\n      return 0;\n    },\n    trackPipelineMiniGraph() {\n      this.track('click_minigraph', { label: TRACKING_CATEGORIES.table });\n    },\n  },\n  TBODY_TR_ATTR: {\n    'data-testid': 'pipeline-table-row',\n  },\n};\n</script>\n<template>\n  <div class=\"ci-table\">\n    <gl-table-lite\n      :fields=\"tableFields\"\n      :items=\"pipelinesWithDetails\"\n      :tbody-tr-attr=\"$options.TBODY_TR_ATTR\"\n      :tbody-tr-class=\"rowClass\"\n      details-td-class=\"!gl-pt-2\"\n      stacked=\"lg\"\n      fixed\n    >\n      <template #head(actions)>\n        <slot name=\"table-header-actions\">\n          <span class=\"gl-block gl-text-right\">{{ s__('Pipeline|Actions') }}</span>\n        </slot>\n      </template>\n\n      <template #table-colgroup=\"{ fields }\">\n        <col v-for=\"field in fields\" :key=\"field.key\" :class=\"field.columnClass\" />\n      </template>\n\n      <template #cell(status)=\"{ item }\">\n        <div v-if=\"item.isLoading\" ref=\"status\">\n          <gl-skeleton-loader :height=\"$options.cellHeight\" :width=\"cellWidth('status')\">\n            <rect height=\"30\" rx=\"4\" ry=\"4\" :width=\"cellWidth('status')\" />\n          </gl-skeleton-loader>\n        </div>\n        <pipeline-status-badge v-else :pipeline=\"item\" />\n      </template>\n\n      <template #cell(pipeline)=\"{ item }\">\n        <div v-if=\"item.isLoading\" ref=\"pipeline\">\n          <gl-skeleton-loader :height=\"$options.cellHeight\" :width=\"cellWidth('pipeline')\">\n            <rect height=\"14\" rx=\"4\" ry=\"4\" :width=\"cellWidth('pipeline')\" />\n            <rect\n              height=\"10\"\n              rx=\"4\"\n              ry=\"4\"\n              :width=\"cellWidth('pipeline') / 2\"\n              :x=\"setLoaderPosition('pipeline')\"\n              y=\"20\"\n            />\n          </gl-skeleton-loader>\n        </div>\n        <pipeline-url\n          v-else\n          :pipeline=\"item\"\n          :pipeline-id-type=\"pipelineIdType\"\n          ref-color=\"gl-text-default\"\n        />\n      </template>\n\n      <template #cell(triggerer)=\"{ item }\">\n        <div v-if=\"item.isLoading\" ref=\"triggerer\" class=\"gl-ml-3\">\n          <gl-skeleton-loader :height=\"$options.cellHeight\" :width=\"cellWidth('triggerer')\">\n            <rect :height=\"34\" rx=\"50\" ry=\"50\" :width=\"34\" />\n          </gl-skeleton-loader>\n        </div>\n        <pipeline-triggerer v-else :pipeline=\"item\" />\n      </template>\n\n      <template #cell(stages)=\"{ item }\">\n        <div v-if=\"item.isLoading\" ref=\"stages\">\n          <gl-skeleton-loader :height=\"$options.cellHeight\" :width=\"cellWidth('stages')\">\n            <rect height=\"20\" rx=\"10\" ry=\"10\" :width=\"cellWidth('stages')\" />\n          </gl-skeleton-loader>\n        </div>\n        <pipeline-mini-graph\n          v-else\n          :downstream-pipelines=\"getDownstreamPipelines(item)\"\n          :pipeline-path=\"item.path\"\n          :pipeline-stages=\"getStages(item)\"\n          :upstream-pipeline=\"item.triggered_by\"\n          @miniGraphStageClick=\"trackPipelineMiniGraph\"\n        />\n      </template>\n\n      <template #cell(actions)=\"{ item }\">\n        <div v-if=\"item.isLoading\" ref=\"actions\">\n          <gl-skeleton-loader :height=\"$options.cellHeight\" :width=\"cellWidth('actions')\">\n            <rect height=\"20\" rx=\"4\" ry=\"4\" :width=\"cellWidth('actions')\" />\n          </gl-skeleton-loader>\n        </div>\n        <pipeline-operations\n          v-else\n          :pipeline=\"item\"\n          @cancel-pipeline=\"onCancelPipeline\"\n          @refresh-pipelines-table=\"onRefreshPipelinesTable\"\n          @retry-pipeline=\"onRetryPipeline\"\n        />\n      </template>\n\n      <template #row-details=\"{ item }\">\n        <pipeline-failed-jobs-widget\n          v-if=\"displayFailedJobsWidget(item)\"\n          :pipeline-iid=\"item.iid\"\n          :pipeline-path=\"item.path\"\n          :project-path=\"getProjectPath(item)\"\n          class=\"-gl-my-3 -gl-ml-4\"\n        />\n      </template>\n    </gl-table-lite>\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!./pipelines_table.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!./pipelines_table.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./pipelines_table.vue?vue&type=template&id=5538a9f6\"\nimport script from \"./pipelines_table.vue?vue&type=script&lang=js\"\nexport * from \"./pipelines_table.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\":\"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\":\"detailsPath\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":77}};\n    doc.loc.source = {\"body\":\"fragment Job on CiJob {\\n  id\\n  detailedStatus {\\n    id\\n    detailsPath\\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","\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","(function() {\n  var AcronymResult, computeScore, emptyAcronymResult, isAcronymFullWord, isMatch, isSeparator, isWordEnd, isWordStart, miss_coeff, pos_bonus, scoreAcronyms, scoreCharacter, scoreConsecutives, scoreExact, scoreExactMatch, scorePattern, scorePosition, scoreSize, tau_size, wm;\n\n  wm = 150;\n\n  pos_bonus = 20;\n\n  tau_size = 150;\n\n  miss_coeff = 0.75;\n\n  exports.score = function(string, query, options) {\n    var allowErrors, preparedQuery, score, string_lw;\n    preparedQuery = options.preparedQuery, allowErrors = options.allowErrors;\n    if (!(allowErrors || isMatch(string, preparedQuery.core_lw, preparedQuery.core_up))) {\n      return 0;\n    }\n    string_lw = string.toLowerCase();\n    score = computeScore(string, string_lw, preparedQuery);\n    return Math.ceil(score);\n  };\n\n  exports.isMatch = isMatch = function(subject, query_lw, query_up) {\n    var i, j, m, n, qj_lw, qj_up, si;\n    m = subject.length;\n    n = query_lw.length;\n    if (!m || n > m) {\n      return false;\n    }\n    i = -1;\n    j = -1;\n    while (++j < n) {\n      qj_lw = query_lw.charCodeAt(j);\n      qj_up = query_up.charCodeAt(j);\n      while (++i < m) {\n        si = subject.charCodeAt(i);\n        if (si === qj_lw || si === qj_up) {\n          break;\n        }\n      }\n      if (i === m) {\n        return false;\n      }\n    }\n    return true;\n  };\n\n  exports.computeScore = computeScore = function(subject, subject_lw, preparedQuery) {\n    var acro, acro_score, align, csc_diag, csc_row, csc_score, csc_should_rebuild, i, j, m, miss_budget, miss_left, n, pos, query, query_lw, record_miss, score, score_diag, score_row, score_up, si_lw, start, sz;\n    query = preparedQuery.query;\n    query_lw = preparedQuery.query_lw;\n    m = subject.length;\n    n = query.length;\n    acro = scoreAcronyms(subject, subject_lw, query, query_lw);\n    acro_score = acro.score;\n    if (acro.count === n) {\n      return scoreExact(n, m, acro_score, acro.pos);\n    }\n    pos = subject_lw.indexOf(query_lw);\n    if (pos > -1) {\n      return scoreExactMatch(subject, subject_lw, query, query_lw, pos, n, m);\n    }\n    score_row = new Array(n);\n    csc_row = new Array(n);\n    sz = scoreSize(n, m);\n    miss_budget = Math.ceil(miss_coeff * n) + 5;\n    miss_left = miss_budget;\n    csc_should_rebuild = true;\n    j = -1;\n    while (++j < n) {\n      score_row[j] = 0;\n      csc_row[j] = 0;\n    }\n    i = -1;\n    while (++i < m) {\n      si_lw = subject_lw[i];\n      if (!si_lw.charCodeAt(0) in preparedQuery.charCodes) {\n        if (csc_should_rebuild) {\n          j = -1;\n          while (++j < n) {\n            csc_row[j] = 0;\n          }\n          csc_should_rebuild = false;\n        }\n        continue;\n      }\n      score = 0;\n      score_diag = 0;\n      csc_diag = 0;\n      record_miss = true;\n      csc_should_rebuild = true;\n      j = -1;\n      while (++j < n) {\n        score_up = score_row[j];\n        if (score_up > score) {\n          score = score_up;\n        }\n        csc_score = 0;\n        if (query_lw[j] === si_lw) {\n          start = isWordStart(i, subject, subject_lw);\n          csc_score = csc_diag > 0 ? csc_diag : scoreConsecutives(subject, subject_lw, query, query_lw, i, j, start);\n          align = score_diag + scoreCharacter(i, j, start, acro_score, csc_score);\n          if (align > score) {\n            score = align;\n            miss_left = miss_budget;\n          } else {\n            if (record_miss && --miss_left <= 0) {\n              return Math.max(score, score_row[n - 1]) * sz;\n            }\n            record_miss = false;\n          }\n        }\n        score_diag = score_up;\n        csc_diag = csc_row[j];\n        csc_row[j] = csc_score;\n        score_row[j] = score;\n      }\n    }\n    score = score_row[n - 1];\n    return score * sz;\n  };\n\n  exports.isWordStart = isWordStart = function(pos, subject, subject_lw) {\n    var curr_s, prev_s;\n    if (pos === 0) {\n      return true;\n    }\n    curr_s = subject[pos];\n    prev_s = subject[pos - 1];\n    return isSeparator(prev_s) || (curr_s !== subject_lw[pos] && prev_s === subject_lw[pos - 1]);\n  };\n\n  exports.isWordEnd = isWordEnd = function(pos, subject, subject_lw, len) {\n    var curr_s, next_s;\n    if (pos === len - 1) {\n      return true;\n    }\n    curr_s = subject[pos];\n    next_s = subject[pos + 1];\n    return isSeparator(next_s) || (curr_s === subject_lw[pos] && next_s !== subject_lw[pos + 1]);\n  };\n\n  isSeparator = function(c) {\n    return c === ' ' || c === '.' || c === '-' || c === '_' || c === '/' || c === '\\\\';\n  };\n\n  scorePosition = function(pos) {\n    var sc;\n    if (pos < pos_bonus) {\n      sc = pos_bonus - pos;\n      return 100 + sc * sc;\n    } else {\n      return Math.max(100 + pos_bonus - pos, 0);\n    }\n  };\n\n  exports.scoreSize = scoreSize = function(n, m) {\n    return tau_size / (tau_size + Math.abs(m - n));\n  };\n\n  scoreExact = function(n, m, quality, pos) {\n    return 2 * n * (wm * quality + scorePosition(pos)) * scoreSize(n, m);\n  };\n\n  exports.scorePattern = scorePattern = function(count, len, sameCase, start, end) {\n    var bonus, sz;\n    sz = count;\n    bonus = 6;\n    if (sameCase === count) {\n      bonus += 2;\n    }\n    if (start) {\n      bonus += 3;\n    }\n    if (end) {\n      bonus += 1;\n    }\n    if (count === len) {\n      if (start) {\n        if (sameCase === len) {\n          sz += 2;\n        } else {\n          sz += 1;\n        }\n      }\n      if (end) {\n        bonus += 1;\n      }\n    }\n    return sameCase + sz * (sz + bonus);\n  };\n\n  exports.scoreCharacter = scoreCharacter = function(i, j, start, acro_score, csc_score) {\n    var posBonus;\n    posBonus = scorePosition(i);\n    if (start) {\n      return posBonus + wm * ((acro_score > csc_score ? acro_score : csc_score) + 10);\n    }\n    return posBonus + wm * csc_score;\n  };\n\n  exports.scoreConsecutives = scoreConsecutives = function(subject, subject_lw, query, query_lw, i, j, startOfWord) {\n    var k, m, mi, n, nj, sameCase, sz;\n    m = subject.length;\n    n = query.length;\n    mi = m - i;\n    nj = n - j;\n    k = mi < nj ? mi : nj;\n    sameCase = 0;\n    sz = 0;\n    if (query[j] === subject[i]) {\n      sameCase++;\n    }\n    while (++sz < k && query_lw[++j] === subject_lw[++i]) {\n      if (query[j] === subject[i]) {\n        sameCase++;\n      }\n    }\n    if (sz < k) {\n      i--;\n    }\n    if (sz === 1) {\n      return 1 + 2 * sameCase;\n    }\n    return scorePattern(sz, n, sameCase, startOfWord, isWordEnd(i, subject, subject_lw, m));\n  };\n\n  exports.scoreExactMatch = scoreExactMatch = function(subject, subject_lw, query, query_lw, pos, n, m) {\n    var end, i, pos2, sameCase, start;\n    start = isWordStart(pos, subject, subject_lw);\n    if (!start) {\n      pos2 = subject_lw.indexOf(query_lw, pos + 1);\n      if (pos2 > -1) {\n        start = isWordStart(pos2, subject, subject_lw);\n        if (start) {\n          pos = pos2;\n        }\n      }\n    }\n    i = -1;\n    sameCase = 0;\n    while (++i < n) {\n      if (query[pos + i] === subject[i]) {\n        sameCase++;\n      }\n    }\n    end = isWordEnd(pos + n - 1, subject, subject_lw, m);\n    return scoreExact(n, m, scorePattern(n, n, sameCase, start, end), pos);\n  };\n\n  AcronymResult = (function() {\n    function AcronymResult(score, pos, count) {\n      this.score = score;\n      this.pos = pos;\n      this.count = count;\n    }\n\n    return AcronymResult;\n\n  })();\n\n  emptyAcronymResult = new AcronymResult(0, 0.1, 0);\n\n  exports.scoreAcronyms = scoreAcronyms = function(subject, subject_lw, query, query_lw) {\n    var count, fullWord, i, j, m, n, qj_lw, sameCase, score, sepCount, sumPos;\n    m = subject.length;\n    n = query.length;\n    if (!(m > 1 && n > 1)) {\n      return emptyAcronymResult;\n    }\n    count = 0;\n    sepCount = 0;\n    sumPos = 0;\n    sameCase = 0;\n    i = -1;\n    j = -1;\n    while (++j < n) {\n      qj_lw = query_lw[j];\n      if (isSeparator(qj_lw)) {\n        i = subject_lw.indexOf(qj_lw, i + 1);\n        if (i > -1) {\n          sepCount++;\n          continue;\n        } else {\n          break;\n        }\n      }\n      while (++i < m) {\n        if (qj_lw === subject_lw[i] && isWordStart(i, subject, subject_lw)) {\n          if (query[j] === subject[i]) {\n            sameCase++;\n          }\n          sumPos += i;\n          count++;\n          break;\n        }\n      }\n      if (i === m) {\n        break;\n      }\n    }\n    if (count < 2) {\n      return emptyAcronymResult;\n    }\n    fullWord = count === n ? isAcronymFullWord(subject, subject_lw, query, count) : false;\n    score = scorePattern(count, n, sameCase, true, fullWord);\n    return new AcronymResult(score, sumPos / count, count + sepCount);\n  };\n\n  isAcronymFullWord = function(subject, subject_lw, query, nbAcronymInQuery) {\n    var count, i, m, n;\n    m = subject.length;\n    n = query.length;\n    count = 0;\n    if (m > 12 * n) {\n      return false;\n    }\n    i = -1;\n    while (++i < m) {\n      if (isWordStart(i, subject, subject_lw) && ++count > nbAcronymInQuery) {\n        return false;\n      }\n    }\n    return true;\n  };\n\n}).call(this);\n","import { parseIntPagination, normalizeHeaders } from '~/lib/utils/common_utils';\n\nexport default class PipelinesStore {\n  constructor() {\n    this.state = {};\n\n    this.state.pipelines = [];\n    this.state.count = {};\n    this.state.pageInfo = {};\n\n    // Used in MR Pipelines tab\n    this.state.isRunningMergeRequestPipeline = false;\n  }\n\n  storePipelines(pipelines = [], isUsingAsyncPipelineCreation) {\n    if (isUsingAsyncPipelineCreation && pipelines.length) {\n      const firstPipelineFromTable = this.state.pipelines[0];\n      const firstPipelineFromRequest = pipelines[0];\n\n      if (firstPipelineFromTable?.created_at !== firstPipelineFromRequest?.created_at) {\n        this.toggleIsRunningPipeline(false);\n      }\n    }\n\n    this.state.pipelines = pipelines;\n  }\n\n  storeCount(count = {}) {\n    this.state.count = count;\n  }\n\n  storePagination(pagination = {}) {\n    let paginationInfo;\n\n    if (Object.keys(pagination).length) {\n      const normalizedHeaders = normalizeHeaders(pagination);\n      paginationInfo = parseIntPagination(normalizedHeaders);\n    } else {\n      paginationInfo = pagination;\n    }\n\n    this.state.pageInfo = paginationInfo;\n  }\n\n  /**\n   * Toggles the isRunningPipeline flag\n   *\n   * @param {Boolean} value\n   */\n  toggleIsRunningPipeline(value = false) {\n    this.state.isRunningMergeRequestPipeline = value;\n  }\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\":\"getPipelineActions\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"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\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"limit\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Int\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pipeline\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"jobs\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"limit\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"whenExecuted\"},\"value\":{\"kind\":\"ListValue\",\"values\":[{\"kind\":\"StringValue\",\"value\":\"manual\",\"block\":false},{\"kind\":\"StringValue\",\"value\":\"delayed\",\"block\":false}]}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"retried\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":false}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"statuses\"},\"value\":{\"kind\":\"ListValue\",\"values\":[{\"kind\":\"EnumValue\",\"value\":\"MANUAL\"},{\"kind\":\"EnumValue\",\"value\":\"SCHEDULED\"},{\"kind\":\"EnumValue\",\"value\":\"SUCCESS\"},{\"kind\":\"EnumValue\",\"value\":\"FAILED\"},{\"kind\":\"EnumValue\",\"value\":\"SKIPPED\"},{\"kind\":\"EnumValue\",\"value\":\"CANCELED\"}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canPlayJob\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"manualJob\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"scheduledAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"scheduled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"playPath\"},\"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\":[]}]}}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":643}};\n    doc.loc.source = {\"body\":\"query getPipelineActions($fullPath: ID!, $iid: ID!, $limit: Int) {\\n  project(fullPath: $fullPath) {\\n    id\\n    pipeline(iid: $iid) {\\n      id\\n      jobs(\\n        first: $limit\\n        whenExecuted: [\\\"manual\\\", \\\"delayed\\\"]\\n        retried: false\\n        statuses: [MANUAL, SCHEDULED, SUCCESS, FAILED, SKIPPED, CANCELED]\\n      ) {\\n        nodes {\\n          id\\n          name\\n          canPlayJob\\n          manualJob\\n          scheduledAt\\n          scheduled\\n          playPath\\n          detailedStatus {\\n            id\\n            action {\\n              id\\n              confirmationMessage\\n            }\\n          }\\n        }\\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[\"getPipelineActions\"] = oneQuery(doc, \"getPipelineActions\");\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","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAAAAAAdJSU2AAACNElEQVR4AdXYBa7jMBCA4b3/JZahzIkjp2qt+BWUWnG5ln2XxaJJb2b5F2ukL4wvzK/rP7bUcbf92u6oftLSe1ldk8efsfaVeEjusZZeC6e1RllaCk/yG6ag1lZ4WwPX69uyD6tAe/g2ipAlNMRS37awDLaFrpcMWxXQOi0jnWCWjFkSZomYJWDWKmatYNZyEWkJsvQimoZYah5NgdaLxagCtF6GRy0DshZPkeYwS/KIJWGWYjwYUzDLxCwDtJ54OKglimBLqHWahii2g1pmHLLGBmwVoRjcKlmgOdw65H5qKuGWCVi5Qlhs6m1sENZi4q3AWNvca5UYy2RjT/SAsiZey6CsIvc0wVlV5lJ0ibPMyLUGCmlxQq0IM0hLdWyro7CWEc3sXsqaK4O2zLxOsmtpfW5Q1u68ZrVmepaaNXEewawtI9X5Xl3U3n1qND6+rfPzvqoIWz/fklNCSLY153YV53J/XUxGCJnKZ1lajsn3/Ffegf6Y5pV2LUsSNL2UHzxUfh3TlYpZqqTpXZm0KZk9zJcqaEmaWPHDw0pxe05K7bWOLHFLWXVetqpYmrjle4+1y0aBaF4UOQ1NU+lYezJClkjLUnSEjqhH6zjAW4OjtY39Ibq+sawUb6W2RQfoqG0VeKuwrRJvlba17faRdbe2pTtYq6Nty/S7yAbGsQjWIq41wVoT1+IdZNy1djUcVdu5lklQWC0xHkt1X31qNEE1Pr3qKv/9XiSNj6Aaifj3/69+AYujsR/MvkpZAAAAAElFTkSuQmCC\"","import Api from '~/api';\nimport axios from '~/lib/utils/axios_utils';\nimport { validateParams } from '../../pipeline_details/utils';\n\nexport default class PipelinesService {\n  /**\n   * Commits and merge request endpoints need to be requested with `.json`.\n   *\n   * The url provided to request the pipelines in the new merge request\n   * page already has `.json`.\n   *\n   * @param  {String} root\n   */\n  constructor(root) {\n    if (root.indexOf('.json') === -1) {\n      this.endpoint = `${root}.json`;\n    } else {\n      this.endpoint = root;\n    }\n  }\n\n  getPipelines(data = {}) {\n    const { scope, page } = data;\n    const { CancelToken } = axios;\n\n    const queryParams = { scope, page, ...validateParams(data) };\n\n    this.cancelationSource = CancelToken.source();\n\n    return axios.get(this.endpoint, {\n      params: queryParams,\n      cancelToken: this.cancelationSource.token,\n    });\n  }\n\n  /**\n   * Post request for all pipelines actions.\n   *\n   * @param  {String} endpoint\n   * @return {Promise}\n   */\n  // eslint-disable-next-line class-methods-use-this\n  postAction(endpoint) {\n    return axios.post(`${endpoint}.json`);\n  }\n\n  // eslint-disable-next-line class-methods-use-this\n  runMRPipeline({ projectId, mergeRequestId }) {\n    return Api.postMergeRequestPipeline(projectId, { mergeRequestId });\n  }\n}\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getPipelineFailedJobs\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"pipelineIid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pipeline\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"pipelineIid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"active\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"troubleshootJobWithAi\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"jobs\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"statuses\"},\"value\":{\"kind\":\"ListValue\",\"values\":[{\"kind\":\"EnumValue\",\"value\":\"FAILED\"}]}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"retried\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":false}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"},\"arguments\":[],\"directives\":[]},{\"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\":\"allowFailure\"},\"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\":\"detailsPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"icon\"},\"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\":\"path\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"icon\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"kind\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"retried\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"retryable\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"stage\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userPermissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"readBuild\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updateBuild\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":753}};\n    doc.loc.source = {\"body\":\"query getPipelineFailedJobs($fullPath: ID!, $pipelineIid: ID!) {\\n  project(fullPath: $fullPath) {\\n    id\\n    pipeline(iid: $pipelineIid) {\\n      id\\n      active\\n      troubleshootJobWithAi\\n      jobs(statuses: [FAILED], retried: false) {\\n        count\\n        nodes {\\n          id\\n          allowFailure\\n          detailedStatus {\\n            id\\n            detailsPath\\n            group\\n            icon\\n            action {\\n              id\\n              path\\n              icon\\n            }\\n          }\\n          kind\\n          name\\n          retried\\n          retryable\\n          stage {\\n            id\\n            name\\n          }\\n          userPermissions {\\n            readBuild\\n            updateBuild\\n          }\\n        }\\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[\"getPipelineFailedJobs\"] = oneQuery(doc, \"getPipelineFailedJobs\");\n        \n","\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","(function() {\n  var Query, defaultPathSeparator, filter, matcher, parseOptions, pathScorer, preparedQueryCache, scorer;\n\n  filter = require('./filter');\n\n  matcher = require('./matcher');\n\n  scorer = require('./scorer');\n\n  pathScorer = require('./pathScorer');\n\n  Query = require('./query');\n\n  preparedQueryCache = null;\n\n  defaultPathSeparator = (typeof process !== \"undefined\" && process !== null ? process.platform : void 0) === \"win32\" ? '\\\\' : '/';\n\n  module.exports = {\n    filter: function(candidates, query, options) {\n      if (options == null) {\n        options = {};\n      }\n      if (!((query != null ? query.length : void 0) && (candidates != null ? candidates.length : void 0))) {\n        return [];\n      }\n      options = parseOptions(options, query);\n      return filter(candidates, query, options);\n    },\n    score: function(string, query, options) {\n      if (options == null) {\n        options = {};\n      }\n      if (!((string != null ? string.length : void 0) && (query != null ? query.length : void 0))) {\n        return 0;\n      }\n      options = parseOptions(options, query);\n      if (options.usePathScoring) {\n        return pathScorer.score(string, query, options);\n      } else {\n        return scorer.score(string, query, options);\n      }\n    },\n    match: function(string, query, options) {\n      var _i, _ref, _results;\n      if (options == null) {\n        options = {};\n      }\n      if (!string) {\n        return [];\n      }\n      if (!query) {\n        return [];\n      }\n      if (string === query) {\n        return (function() {\n          _results = [];\n          for (var _i = 0, _ref = string.length; 0 <= _ref ? _i < _ref : _i > _ref; 0 <= _ref ? _i++ : _i--){ _results.push(_i); }\n          return _results;\n        }).apply(this);\n      }\n      options = parseOptions(options, query);\n      return matcher.match(string, query, options);\n    },\n    wrap: function(string, query, options) {\n      if (options == null) {\n        options = {};\n      }\n      if (!string) {\n        return [];\n      }\n      if (!query) {\n        return [];\n      }\n      options = parseOptions(options, query);\n      return matcher.wrap(string, query, options);\n    },\n    prepareQuery: function(query, options) {\n      if (options == null) {\n        options = {};\n      }\n      options = parseOptions(options, query);\n      return options.preparedQuery;\n    }\n  };\n\n  parseOptions = function(options, query) {\n    if (options.allowErrors == null) {\n      options.allowErrors = false;\n    }\n    if (options.usePathScoring == null) {\n      options.usePathScoring = true;\n    }\n    if (options.useExtensionBonus == null) {\n      options.useExtensionBonus = false;\n    }\n    if (options.pathSeparator == null) {\n      options.pathSeparator = defaultPathSeparator;\n    }\n    if (options.optCharRegEx == null) {\n      options.optCharRegEx = null;\n    }\n    if (options.wrap == null) {\n      options.wrap = null;\n    }\n    if (options.preparedQuery == null) {\n      options.preparedQuery = preparedQueryCache && preparedQueryCache.query === query ? preparedQueryCache : (preparedQueryCache = new Query(query, options));\n    }\n    return options;\n  };\n\n}).call(this);\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","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.showPagination)?_c('gl-pagination',_vm._b({staticClass:\"gl-mt-5\",attrs:{\"align\":\"center\",\"value\":_vm.pageInfo.page,\"per-page\":_vm.pageInfo.perPage,\"total-items\":_vm.pageInfo.total,\"prev-page\":_vm.pageInfo.previousPage,\"next-page\":_vm.pageInfo.nextPage},on:{\"input\":_vm.change}},'gl-pagination',_vm.$attrs,false)):_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!./table_pagination.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!./table_pagination.vue?vue&type=script&lang=js\"","<script>\nimport { GlPagination } from '@gitlab/ui';\n\nexport default {\n  components: {\n    GlPagination,\n  },\n  props: {\n    /**\n        This function will take the information given by the pagination component\n\n        Here is an example `change` method:\n\n        change(pagenum) {\n          visitUrl(`?page=${pagenum}`);\n        },\n      */\n    change: {\n      type: Function,\n      required: true,\n    },\n\n    /**\n        pageInfo will come from the headers of the API call\n        there should be a function that constructs the pageInfo for this component\n\n        This is an example:\n\n        const pageInfo = headers => ({\n          perPage: +headers['X-Per-Page'],\n          page: +headers['X-Page'],\n          total: +headers['X-Total'],\n          totalPages: +headers['X-Total-Pages'],\n          nextPage: +headers['X-Next-Page'],\n          previousPage: +headers['X-Prev-Page'],\n        });\n      */\n    pageInfo: {\n      type: Object,\n      required: true,\n    },\n  },\n  computed: {\n    showPagination() {\n      return this.pageInfo.nextPage || this.pageInfo.previousPage;\n    },\n  },\n};\n</script>\n<template>\n  <gl-pagination\n    v-if=\"showPagination\"\n    class=\"gl-mt-5\"\n    v-bind=\"$attrs\"\n    align=\"center\"\n    :value=\"pageInfo.page\"\n    :per-page=\"pageInfo.perPage\"\n    :total-items=\"pageInfo.total\"\n    :prev-page=\"pageInfo.previousPage\"\n    :next-page=\"pageInfo.nextPage\"\n    @input=\"change\"\n  />\n</template>\n","import { render, staticRenderFns } from \"./table_pagination.vue?vue&type=template&id=13e7ff42\"\nimport script from \"./table_pagination.vue?vue&type=script&lang=js\"\nexport * from \"./table_pagination.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","export const HTTP_STATUS_ABORTED = 0;\nexport const HTTP_STATUS_OK = 200;\nexport const HTTP_STATUS_CREATED = 201;\nexport const HTTP_STATUS_ACCEPTED = 202;\nexport const HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION = 203;\nexport const HTTP_STATUS_NO_CONTENT = 204;\nexport const HTTP_STATUS_RESET_CONTENT = 205;\nexport const HTTP_STATUS_PARTIAL_CONTENT = 206;\nexport const HTTP_STATUS_MULTI_STATUS = 207;\nexport const HTTP_STATUS_ALREADY_REPORTED = 208;\nexport const HTTP_STATUS_IM_USED = 226;\nexport const HTTP_STATUS_BAD_REQUEST = 400;\nexport const HTTP_STATUS_UNAUTHORIZED = 401;\nexport const HTTP_STATUS_FORBIDDEN = 403;\nexport const HTTP_STATUS_NOT_FOUND = 404;\nexport const HTTP_STATUS_METHOD_NOT_ALLOWED = 405;\nexport const HTTP_STATUS_CONFLICT = 409;\nexport const HTTP_STATUS_GONE = 410;\nexport const HTTP_STATUS_PAYLOAD_TOO_LARGE = 413;\nexport const HTTP_STATUS_IM_A_TEAPOT = 418;\nexport const HTTP_STATUS_UNPROCESSABLE_ENTITY = 422;\nexport const HTTP_STATUS_TOO_MANY_REQUESTS = 429;\nexport const HTTP_STATUS_INTERNAL_SERVER_ERROR = 500;\nexport const HTTP_STATUS_SERVICE_UNAVAILABLE = 503;\n\nexport const successCodes = [\n  HTTP_STATUS_OK,\n  HTTP_STATUS_CREATED,\n  HTTP_STATUS_ACCEPTED,\n  HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION,\n  HTTP_STATUS_NO_CONTENT,\n  HTTP_STATUS_RESET_CONTENT,\n  HTTP_STATUS_PARTIAL_CONTENT,\n  HTTP_STATUS_MULTI_STATUS,\n  HTTP_STATUS_ALREADY_REPORTED,\n  HTTP_STATUS_IM_USED,\n];\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('time',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"datetime\":_vm.endDateString,\"title\":_vm.endDateString}},[_vm._v(\" \"+_vm._s(_vm.remainingTime)+\" \")])\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!./gl_countdown.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!./gl_countdown.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective } from '@gitlab/ui';\nimport { calculateRemainingMilliseconds, formatTime } from '~/lib/utils/datetime_utility';\n\n/**\n * Counts down to a given end date.\n */\nexport default {\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n\n  props: {\n    endDateString: {\n      type: String,\n      required: true,\n      validator(value) {\n        return !Number.isNaN(new Date(value).getTime());\n      },\n    },\n  },\n\n  data() {\n    return {\n      remainingTime: formatTime(0),\n      countdownUpdateIntervalId: null,\n    };\n  },\n\n  mounted() {\n    const updateRemainingTime = () => {\n      const remainingMilliseconds = calculateRemainingMilliseconds(this.endDateString);\n\n      if (remainingMilliseconds < 1) {\n        this.$emit('timer-expired');\n      }\n\n      this.remainingTime = formatTime(remainingMilliseconds);\n    };\n\n    updateRemainingTime();\n    this.countdownUpdateIntervalId = window.setInterval(updateRemainingTime, 1000);\n  },\n\n  beforeDestroy() {\n    window.clearInterval(this.countdownUpdateIntervalId);\n  },\n};\n</script>\n\n<template>\n  <time v-gl-tooltip :datetime=\"endDateString\" :title=\"endDateString\"> {{ remainingTime }} </time>\n</template>\n","import { render, staticRenderFns } from \"./gl_countdown.vue?vue&type=template&id=59b0e135\"\nimport script from \"./gl_countdown.vue?vue&type=script&lang=js\"\nexport * from \"./gl_countdown.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 { 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","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"retryMrFailedJob\"},\"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\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":101}};\n    doc.loc.source = {\"body\":\"mutation retryMrFailedJob($id: CiProcessableID!) {\\n  jobRetry(input: { id: $id }) {\\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  \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[\"retryMrFailedJob\"] = oneQuery(doc, \"retryMrFailedJob\");\n        \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-avatar-link',{staticClass:\"user-avatar-link js-user-link\",attrs:{\"href\":_vm.linkHref,\"data-user-id\":_vm.userId,\"data-username\":_vm.popoverUsername},on:{\"click\":function($event){$event.stopPropagation();}}},[_c('user-avatar-image',{class:_vm.imgCssWrapperClasses,attrs:{\"img-src\":_vm.imgSrc,\"img-alt\":_vm.imgAlt,\"css-classes\":_vm.imgCssClasses,\"size\":_vm.imgSize,\"tooltip-text\":_vm.avatarTooltipText,\"tooltip-placement\":_vm.tooltipPlacement,\"lazy\":_vm.lazy}},[_vm._t(\"default\")],2),_vm._v(\" \"),(_vm.shouldShowUsername)?_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-ml-1\",attrs:{\"title\":_vm.tooltipText,\"tooltip-placement\":_vm.tooltipPlacement,\"data-testid\":\"user-avatar-link-username\"}},[_vm._v(\"\\n    \"+_vm._s(_vm.username)+\"\\n  \")]):_vm._e(),_vm._v(\" \"),_vm._t(\"avatar-badge\")],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!./user_avatar_link.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!./user_avatar_link.vue?vue&type=script&lang=js\"","<script>\n/* This is a re-usable vue component for rendering a user avatar wrapped in\n  a clickable link (likely to the user's profile). The link, image, and\n  tooltip can be configured by props passed to this component.\n\n  Sample configuration:\n\n  <user-avatar-link\n    :link-href=\"userProfileUrl\"\n    :img-src=\"userAvatarSrc\"\n    :img-alt=\"tooltipText\"\n    :img-size=\"32\"\n    :tooltip-text=\"tooltipText\"\n    :tooltip-placement=\"top\"\n    :username=\"username\"\n  />\n\n*/\n\nimport { GlAvatarLink, GlTooltipDirective } from '@gitlab/ui';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport UserAvatarImage from './user_avatar_image.vue';\n\nexport default {\n  name: 'UserAvatarLinkNew',\n  components: {\n    UserAvatarImage,\n    GlAvatarLink,\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  props: {\n    lazy: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    linkHref: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    imgSrc: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    imgAlt: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    imgCssClasses: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    imgCssWrapperClasses: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    imgSize: {\n      type: [Number, Object],\n      required: true,\n    },\n    tooltipText: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    tooltipPlacement: {\n      type: String,\n      required: false,\n      default: 'top',\n    },\n    popoverUserId: {\n      type: [String, Number],\n      required: false,\n      default: '',\n    },\n    popoverUsername: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    username: {\n      type: String,\n      required: false,\n      default: '',\n    },\n  },\n  computed: {\n    userId() {\n      return getIdFromGraphQLId(this.popoverUserId);\n    },\n    shouldShowUsername() {\n      return this.username.length > 0;\n    },\n    avatarTooltipText() {\n      // Prevent showing tooltip when popoverUserId is present\n      if (this.popoverUserId) {\n        return '';\n      }\n      return this.shouldShowUsername ? '' : this.tooltipText;\n    },\n  },\n};\n</script>\n\n<template>\n  <gl-avatar-link\n    :href=\"linkHref\"\n    :data-user-id=\"userId\"\n    :data-username=\"popoverUsername\"\n    class=\"user-avatar-link js-user-link\"\n    @click.stop\n  >\n    <user-avatar-image\n      :class=\"imgCssWrapperClasses\"\n      :img-src=\"imgSrc\"\n      :img-alt=\"imgAlt\"\n      :css-classes=\"imgCssClasses\"\n      :size=\"imgSize\"\n      :tooltip-text=\"avatarTooltipText\"\n      :tooltip-placement=\"tooltipPlacement\"\n      :lazy=\"lazy\"\n    >\n      <slot></slot>\n    </user-avatar-image>\n\n    <span\n      v-if=\"shouldShowUsername\"\n      v-gl-tooltip\n      :title=\"tooltipText\"\n      :tooltip-placement=\"tooltipPlacement\"\n      class=\"gl-ml-1\"\n      data-testid=\"user-avatar-link-username\"\n    >\n      {{ username }}\n    </span>\n\n    <slot name=\"avatar-badge\"></slot>\n  </gl-avatar-link>\n</template>\n","import { render, staticRenderFns } from \"./user_avatar_link.vue?vue&type=template&id=0c9f1264\"\nimport script from \"./user_avatar_link.vue?vue&type=script&lang=js\"\nexport * from \"./user_avatar_link.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","export const ANY_TRIGGER_AUTHOR = 'Any';\nexport const FILTER_PIPELINES_SEARCH_DELAY = 200;\nexport const SCHEDULE_ORIGIN = 'schedule';\nexport const API_ORIGIN = 'api';\nexport const TRIGGER_ORIGIN = 'trigger';\n\nexport const CATALOG_TRACKING_LABEL = 'ci_cd_catalog_prompt';\nexport const GITLAB_UNIVERSITY_TRACKING_LABEL = 'gitlab_university_prompt';\nexport const MIGRATE_FROM_JENKINS_TRACKING_LABEL = 'migrate_from_jenkins_prompt';\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getPipelineFailedJobsCount\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"pipelineIid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pipeline\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"pipelineIid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"active\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"jobs\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"statuses\"},\"value\":{\"kind\":\"ListValue\",\"values\":[{\"kind\":\"EnumValue\",\"value\":\"FAILED\"}]}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"retried\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":false}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"jobKind\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"BUILD\"}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":265}};\n    doc.loc.source = {\"body\":\"query getPipelineFailedJobsCount($fullPath: ID!, $pipelineIid: ID!) {\\n  project(fullPath: $fullPath) {\\n    id\\n    pipeline(iid: $pipelineIid) {\\n      id\\n      active\\n      jobs(statuses: [FAILED], retried: false, jobKind: BUILD) {\\n        count\\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[\"getPipelineFailedJobsCount\"] = oneQuery(doc, \"getPipelineFailedJobsCount\");\n        \n","(function() {\n  var Query, coreChars, countDir, getCharCodes, getExtension, opt_char_re, truncatedUpperCase, _ref;\n\n  _ref = require(\"./pathScorer\"), countDir = _ref.countDir, getExtension = _ref.getExtension;\n\n  module.exports = Query = (function() {\n    function Query(query, _arg) {\n      var optCharRegEx, pathSeparator, _ref1;\n      _ref1 = _arg != null ? _arg : {}, optCharRegEx = _ref1.optCharRegEx, pathSeparator = _ref1.pathSeparator;\n      if (!(query && query.length)) {\n        return null;\n      }\n      this.query = query;\n      this.query_lw = query.toLowerCase();\n      this.core = coreChars(query, optCharRegEx);\n      this.core_lw = this.core.toLowerCase();\n      this.core_up = truncatedUpperCase(this.core);\n      this.depth = countDir(query, query.length, pathSeparator);\n      this.ext = getExtension(this.query_lw);\n      this.charCodes = getCharCodes(this.query_lw);\n    }\n\n    return Query;\n\n  })();\n\n  opt_char_re = /[ _\\-:\\/\\\\]/g;\n\n  coreChars = function(query, optCharRegEx) {\n    if (optCharRegEx == null) {\n      optCharRegEx = opt_char_re;\n    }\n    return query.replace(optCharRegEx, '');\n  };\n\n  truncatedUpperCase = function(str) {\n    var char, upper, _i, _len;\n    upper = \"\";\n    for (_i = 0, _len = str.length; _i < _len; _i++) {\n      char = str[_i];\n      upper += char.toUpperCase()[0];\n    }\n    return upper;\n  };\n\n  getCharCodes = function(str) {\n    var charCodes, i, len;\n    len = str.length;\n    i = -1;\n    charCodes = [];\n    while (++i < len) {\n      charCodes[str.charCodeAt(i)] = true;\n    }\n    return charCodes;\n  };\n\n}).call(this);\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.tooltip),expression:\"tooltip\"},{name:\"gl-resize-observer\",rawName:\"v-gl-resize-observer\",value:(_vm.onResize),expression:\"onResize\"}],staticClass:\"gl-min-w-0\",class:_vm.classes},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlTooltipDirective, GlResizeObserverDirective } from '@gitlab/ui';\nimport { isFunction, debounce } from 'lodash';\nimport { hasHorizontalOverflow } from '~/lib/utils/dom_utils';\n\nconst UPDATE_TOOLTIP_DEBOUNCED_WAIT_MS = 300;\n\nexport default {\n  directives: {\n    GlTooltip: GlTooltipDirective,\n    GlResizeObserver: GlResizeObserverDirective,\n  },\n  props: {\n    title: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    placement: {\n      type: String,\n      required: false,\n      default: 'top',\n    },\n    boundary: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    truncateTarget: {\n      type: [String, Function],\n      required: false,\n      default: '',\n    },\n  },\n  data() {\n    return {\n      tooltipDisabled: true,\n    };\n  },\n  computed: {\n    classes() {\n      if (this.tooltipDisabled) {\n        return '';\n      }\n      return 'js-show-tooltip';\n    },\n    tooltip() {\n      return {\n        title: this.title,\n        placement: this.placement,\n        disabled: this.tooltipDisabled,\n        // Only set the tooltip boundary if it's truthy\n        ...(this.boundary && { boundary: this.boundary }),\n      };\n    },\n  },\n  watch: {\n    title() {\n      // Wait on $nextTick in case the slot width changes\n      this.$nextTick(this.updateTooltip);\n    },\n  },\n  created() {\n    this.updateTooltipDebounced = debounce(this.updateTooltip, UPDATE_TOOLTIP_DEBOUNCED_WAIT_MS);\n  },\n  mounted() {\n    this.updateTooltip();\n  },\n  methods: {\n    selectTarget() {\n      if (isFunction(this.truncateTarget)) {\n        return this.truncateTarget(this.$el);\n      }\n      if (this.truncateTarget === 'child') {\n        return this.$el.childNodes[0];\n      }\n      return this.$el;\n    },\n    updateTooltip() {\n      this.tooltipDisabled = !hasHorizontalOverflow(this.selectTarget());\n    },\n    onResize() {\n      this.updateTooltipDebounced();\n    },\n  },\n};\n</script>\n\n<template>\n  <span v-gl-tooltip=\"tooltip\" v-gl-resize-observer=\"onResize\" :class=\"classes\" class=\"gl-min-w-0\">\n    <slot></slot>\n  </span>\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!./tooltip_on_truncate.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!./tooltip_on_truncate.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./tooltip_on_truncate.vue?vue&type=template&id=50568281\"\nimport script from \"./tooltip_on_truncate.vue?vue&type=script&lang=js\"\nexport * from \"./tooltip_on_truncate.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('section',{ref:\"crudComponent\",staticClass:\"crud gl-border gl-rounded-base gl-border-section gl-bg-subtle\",class:{ 'gl-mt-5': _vm.isCollapsible },attrs:{\"id\":_vm.anchorId}},[_c('header',{staticClass:\"crud-header gl-border-b gl-flex gl-flex-wrap gl-justify-between gl-gap-x-5 gl-gap-y-2 gl-rounded-t-base gl-border-section gl-bg-section gl-px-5 gl-py-4\",class:[\n      _vm.headerClass,\n      {\n        'gl-rounded-base gl-border-b-transparent': !_vm.isContentVisible,\n        'gl-relative gl-pr-10': _vm.isCollapsible,\n      },\n    ]},[_c('div',{staticClass:\"gl-flex gl-grow gl-flex-col gl-self-center\"},[_c('h2',{staticClass:\"gl-m-0 gl-inline-flex gl-items-center gl-gap-3 gl-text-base gl-font-bold gl-leading-normal\",class:_vm.titleClass,attrs:{\"data-testid\":\"crud-title\"}},[(_vm.anchorId)?_c('gl-link',{staticClass:\"anchor gl-absolute gl-no-underline\",attrs:{\"href\":`#${_vm.anchorId}`,\"aria-labelledby\":_vm.anchorId}}):_vm._e(),_vm._v(\" \"),(_vm.$scopedSlots.title)?_vm._t(\"title\"):[_vm._v(_vm._s(_vm.title))],_vm._v(\" \"),(_vm.displayedCount || _vm.$scopedSlots.count)?_c('span',{staticClass:\"crud-count gl-inline-flex gl-items-center gl-gap-2 gl-self-start gl-text-sm gl-text-subtle\",attrs:{\"data-testid\":\"crud-count\"}},[(_vm.displayedCount)?[(_vm.icon)?_c('gl-icon',{attrs:{\"name\":_vm.icon,\"variant\":\"subtle\",\"data-testid\":\"crud-icon\"}}):_vm._e(),_vm._v(\"\\n            \"+_vm._s(_vm.displayedCount)+\"\\n          \")]:_vm._e(),_vm._v(\" \"),(_vm.$scopedSlots.count)?_vm._t(\"count\"):_vm._e()],2):_vm._e()],2),_vm._v(\" \"),(_vm.description || _vm.$scopedSlots.description)?_c('p',{staticClass:\"gl-mb-0 gl-mt-2 gl-text-sm gl-leading-normal gl-text-subtle\",attrs:{\"data-testid\":\"crud-description\"}},[(_vm.$scopedSlots.description)?_vm._t(\"description\"):[_vm._v(_vm._s(_vm.description))]],2):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-items-baseline gl-gap-3\",attrs:{\"data-testid\":\"crud-actions\"}},[_vm._t(\"actions\"),_vm._v(\" \"),(_vm.toggleText && !_vm.isFormUsedAndVisible)?_c('gl-button',{attrs:{\"size\":\"small\",\"aria-label\":_vm.toggleAriaLabel,\"data-testid\":\"crud-form-toggle\"},on:{\"click\":_vm.showForm}},[_vm._v(_vm._s(_vm.toggleText))]):_vm._e(),_vm._v(\" \"),(_vm.isCollapsible)?_c('div',{staticClass:\"gl-border-l gl-absolute gl-right-5 gl-top-4 gl-h-6 gl-border-l-section gl-pl-3\"},[_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"-gl-mr-2 gl-self-start\",attrs:{\"title\":_vm.toggleLabel,\"icon\":_vm.toggleIcon,\"category\":\"tertiary\",\"size\":\"small\",\"aria-label\":_vm.toggleLabel,\"aria-expanded\":_vm.ariaExpandedAttr,\"aria-controls\":_vm.anchorId,\"data-testid\":\"crud-collapse-toggle\"},on:{\"click\":_vm.toggleCollapse}})],1):_vm._e()],2)]),_vm._v(\" \"),(_vm.isFormUsedAndVisible)?_c('div',{staticClass:\"gl-border-b gl-border-section gl-bg-section gl-p-5 gl-pt-4\",attrs:{\"data-testid\":\"crud-form\"}},[_vm._t(\"form\",null,{\"hideForm\":_vm.hideForm})],2):_vm._e(),_vm._v(\" \"),(_vm.isContentVisible)?_c('div',{staticClass:\"crud-body gl-mx-5 gl-my-4\",class:[_vm.bodyClass, { 'gl-rounded-b-base': !_vm.$scopedSlots.footer }],attrs:{\"data-testid\":\"crud-body\"}},[(_vm.isLoading)?_c('gl-loading-icon',{attrs:{\"size\":\"sm\",\"data-testid\":\"crud-loading\"}}):(_vm.$scopedSlots.empty)?_c('span',{staticClass:\"gl-text-subtle\",attrs:{\"data-testid\":\"crud-empty\"}},[_vm._t(\"empty\")],2):_vm._t(\"default\",null,{\"showForm\":_vm.showForm}),_vm._v(\" \"),(_vm.$scopedSlots.pagination)?_c('div',{staticClass:\"crud-pagination gl-border-t gl-flex gl-justify-center gl-border-t-section gl-p-5\",attrs:{\"data-testid\":\"crud-pagination\"}},[_vm._t(\"pagination\")],2):_vm._e()],2):_vm._e(),_vm._v(\" \"),(_vm.$scopedSlots.footer)?_c('footer',{staticClass:\"gl-border-t gl-rounded-b-base gl-border-section gl-bg-section gl-px-5 gl-py-4\",attrs:{\"data-testid\":\"crud-footer\"}},[_vm._t(\"footer\")],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!./crud_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!./crud_component.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlIcon, GlLoadingIcon, GlLink, GlTooltipDirective } from '@gitlab/ui';\nimport { __ } from '~/locale';\n\nexport default {\n  components: {\n    GlButton,\n    GlIcon,\n    GlLoadingIcon,\n    GlLink,\n  },\n  directives: {\n    GlTooltip: GlTooltipDirective,\n  },\n  props: {\n    title: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    description: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    count: {\n      type: [String, Number],\n      required: false,\n      default: '',\n    },\n    icon: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    toggleText: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    toggleAriaLabel: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    isCollapsible: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    collapsed: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    isLoading: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    anchorId: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    headerClass: {\n      type: [String, Object],\n      required: false,\n      default: null,\n    },\n    titleClass: {\n      type: [String, Object],\n      required: false,\n      default: null,\n    },\n    bodyClass: {\n      type: [String, Object],\n      required: false,\n      default: null,\n    },\n    persistCollapsedState: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n  },\n  data() {\n    return {\n      isCollapsed:\n        this.collapsed ||\n        (this.persistCollapsedState &&\n          localStorage.getItem(this.getLocalStorageKeyName()) === 'true'),\n      isFormVisible: false,\n    };\n  },\n  computed: {\n    isContentVisible() {\n      const hasContent =\n        this.$scopedSlots.default || this.$scopedSlots.empty || this.$scopedSlots.pagination;\n      return !(hasContent && this.isCollapsible && this.isCollapsed);\n    },\n    toggleIcon() {\n      return this.isCollapsed ? 'chevron-lg-down' : 'chevron-lg-up';\n    },\n    toggleLabel() {\n      return this.isCollapsed ? __('Expand') : __('Collapse');\n    },\n    ariaExpandedAttr() {\n      return this.isCollapsed ? 'false' : 'true';\n    },\n    displayedCount() {\n      if (this.isLoading) {\n        return '...';\n      }\n\n      return this.icon && !this.count ? '0' : this.count;\n    },\n    isFormUsedAndVisible() {\n      return this.$scopedSlots.form && this.isFormVisible && !this.isCollapsed;\n    },\n  },\n  watch: {\n    collapsed: {\n      handler(newVal) {\n        this.isCollapsed = newVal > 0;\n      },\n    },\n  },\n  methods: {\n    toggleCollapse() {\n      this.isCollapsed = !this.isCollapsed;\n\n      if (this.isCollapsed) {\n        this.$emit('collapsed');\n      } else {\n        this.$emit('expanded');\n      }\n\n      if (this.persistCollapsedState) {\n        localStorage.setItem(this.getLocalStorageKeyName(), this.isCollapsed);\n      }\n    },\n    showForm() {\n      this.isFormVisible = true;\n      this.isCollapsed = false;\n      this.$emit('showForm');\n    },\n    hideForm() {\n      this.isFormVisible = false;\n      this.$emit('hideForm');\n    },\n    toggleForm() {\n      if (this.isFormVisible) {\n        this.hideForm();\n      } else {\n        this.showForm();\n      }\n    },\n    getLocalStorageKeyName() {\n      return `crud-collapse-${this.anchorId}`;\n    },\n  },\n};\n</script>\n\n<template>\n  <section\n    :id=\"anchorId\"\n    ref=\"crudComponent\"\n    class=\"crud gl-border gl-rounded-base gl-border-section gl-bg-subtle\"\n    :class=\"{ 'gl-mt-5': isCollapsible }\"\n  >\n    <header\n      class=\"crud-header gl-border-b gl-flex gl-flex-wrap gl-justify-between gl-gap-x-5 gl-gap-y-2 gl-rounded-t-base gl-border-section gl-bg-section gl-px-5 gl-py-4\"\n      :class=\"[\n        headerClass,\n        {\n          'gl-rounded-base gl-border-b-transparent': !isContentVisible,\n          'gl-relative gl-pr-10': isCollapsible,\n        },\n      ]\"\n    >\n      <div class=\"gl-flex gl-grow gl-flex-col gl-self-center\">\n        <h2\n          class=\"gl-m-0 gl-inline-flex gl-items-center gl-gap-3 gl-text-base gl-font-bold gl-leading-normal\"\n          :class=\"titleClass\"\n          data-testid=\"crud-title\"\n        >\n          <gl-link\n            v-if=\"anchorId\"\n            class=\"anchor gl-absolute gl-no-underline\"\n            :href=\"`#${anchorId}`\"\n            :aria-labelledby=\"anchorId\"\n          />\n          <slot v-if=\"$scopedSlots.title\" name=\"title\"></slot>\n          <template v-else>{{ title }}</template>\n\n          <span\n            v-if=\"displayedCount || $scopedSlots.count\"\n            class=\"crud-count gl-inline-flex gl-items-center gl-gap-2 gl-self-start gl-text-sm gl-text-subtle\"\n            data-testid=\"crud-count\"\n          >\n            <template v-if=\"displayedCount\">\n              <gl-icon v-if=\"icon\" :name=\"icon\" variant=\"subtle\" data-testid=\"crud-icon\" />\n              {{ displayedCount }}\n            </template>\n            <slot v-if=\"$scopedSlots.count\" name=\"count\"></slot>\n          </span>\n        </h2>\n        <p\n          v-if=\"description || $scopedSlots.description\"\n          class=\"gl-mb-0 gl-mt-2 gl-text-sm gl-leading-normal gl-text-subtle\"\n          data-testid=\"crud-description\"\n        >\n          <slot v-if=\"$scopedSlots.description\" name=\"description\"></slot>\n          <template v-else>{{ description }}</template>\n        </p>\n      </div>\n      <div class=\"gl-flex gl-items-baseline gl-gap-3\" data-testid=\"crud-actions\">\n        <slot name=\"actions\"></slot>\n        <gl-button\n          v-if=\"toggleText && !isFormUsedAndVisible\"\n          size=\"small\"\n          :aria-label=\"toggleAriaLabel\"\n          data-testid=\"crud-form-toggle\"\n          @click=\"showForm\"\n          >{{ toggleText }}</gl-button\n        >\n        <div\n          v-if=\"isCollapsible\"\n          class=\"gl-border-l gl-absolute gl-right-5 gl-top-4 gl-h-6 gl-border-l-section gl-pl-3\"\n        >\n          <gl-button\n            v-gl-tooltip\n            :title=\"toggleLabel\"\n            :icon=\"toggleIcon\"\n            category=\"tertiary\"\n            size=\"small\"\n            :aria-label=\"toggleLabel\"\n            :aria-expanded=\"ariaExpandedAttr\"\n            :aria-controls=\"anchorId\"\n            class=\"-gl-mr-2 gl-self-start\"\n            data-testid=\"crud-collapse-toggle\"\n            @click=\"toggleCollapse\"\n          />\n        </div>\n      </div>\n    </header>\n\n    <div\n      v-if=\"isFormUsedAndVisible\"\n      class=\"gl-border-b gl-border-section gl-bg-section gl-p-5 gl-pt-4\"\n      data-testid=\"crud-form\"\n    >\n      <slot name=\"form\" :hide-form=\"hideForm\"></slot>\n    </div>\n\n    <div\n      v-if=\"isContentVisible\"\n      class=\"crud-body gl-mx-5 gl-my-4\"\n      :class=\"[bodyClass, { 'gl-rounded-b-base': !$scopedSlots.footer }]\"\n      data-testid=\"crud-body\"\n    >\n      <gl-loading-icon v-if=\"isLoading\" size=\"sm\" data-testid=\"crud-loading\" />\n      <span v-else-if=\"$scopedSlots.empty\" class=\"gl-text-subtle\" data-testid=\"crud-empty\">\n        <slot name=\"empty\"></slot>\n      </span>\n      <slot v-else :show-form=\"showForm\"></slot>\n\n      <div\n        v-if=\"$scopedSlots.pagination\"\n        class=\"crud-pagination gl-border-t gl-flex gl-justify-center gl-border-t-section gl-p-5\"\n        data-testid=\"crud-pagination\"\n      >\n        <slot name=\"pagination\"></slot>\n      </div>\n    </div>\n\n    <footer\n      v-if=\"$scopedSlots.footer\"\n      class=\"gl-border-t gl-rounded-b-base gl-border-section gl-bg-section gl-px-5 gl-py-4\"\n      data-testid=\"crud-footer\"\n    >\n      <slot name=\"footer\"></slot>\n    </footer>\n  </section>\n</template>\n","import { render, staticRenderFns } from \"./crud_component.vue?vue&type=template&id=3c3ad8dc\"\nimport script from \"./crud_component.vue?vue&type=script&lang=js\"\nexport * from \"./crud_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","import { normalizeHeaders } from './common_utils';\nimport { HTTP_STATUS_ABORTED, successCodes } from './http_status';\n\n/**\n * Polling utility for handling realtime updates.\n * Requirements: Promise based HTTP client\n *\n * Service for promise based http client and method need to be provided as props\n *\n * @example\n * new Poll({\n *   resource: resource,\n *   method: 'name',\n *   data: {page: 1, scope: 'all'}, // optional\n *   successCallback: () => {},\n *   errorCallback: () => {},\n *   notificationCallback: () => {}, // optional\n * }).makeRequest();\n *\n * Usage in pipelines table with visibility lib:\n *\n * const poll = new Poll({\n *  resource: this.service,\n *  method: 'getPipelines',\n *  data: { page: pageNumber, scope },\n *  successCallback: this.successCallback,\n *  errorCallback: this.errorCallback,\n *  notificationCallback: this.updateLoading,\n * });\n *\n * if (!Visibility.hidden()) {\n *  poll.makeRequest();\n *  }\n *\n * Visibility.change(() => {\n *  if (!Visibility.hidden()) {\n *   poll.restart();\n *  } else {\n *   poll.stop();\n *  }\n * });\n *\n * 1. Checks for response and headers before start polling\n * 2. Interval is provided by `Poll-Interval` header.\n * 3. If `Poll-Interval` is -1, we stop polling\n * 4. If HTTP response is 200, we poll.\n * 5. If HTTP response is different from 200, we stop polling.\n *\n * @example\n * // With initial delay (for, for example, reducing unnecessary requests)\n *\n * const poll = new Poll({\n *  resource: this.service,\n *  method: 'fetchNotes',\n *  successCallback: () => {},\n *  errorCallback: () => {},\n * });\n *\n * // Performs the first request in 2.5s and then uses the `Poll-Interval` header.\n * poll.makeDelayedRequest(2500);\n *\n */\nexport default class Poll {\n  constructor(options = {}) {\n    this.options = options;\n    this.options.data = options.data || {};\n    this.options.notificationCallback =\n      options.notificationCallback || function notificationCallback() {};\n\n    this.intervalHeader = 'POLL-INTERVAL';\n    this.timeoutID = null;\n    this.canPoll = true;\n  }\n\n  checkConditions(response) {\n    const headers = normalizeHeaders(response.headers);\n    const pollInterval = parseInt(headers[this.intervalHeader], 10);\n    if (pollInterval > 0 && successCodes.indexOf(response.status) !== -1 && this.canPoll) {\n      if (this.timeoutID) {\n        clearTimeout(this.timeoutID);\n      }\n\n      this.timeoutID = setTimeout(() => {\n        this.makeRequest();\n      }, pollInterval);\n    }\n    this.options.successCallback(response);\n  }\n\n  makeDelayedRequest(delay = 0) {\n    // So we don't make our specs artificially slower\n    this.timeoutID = setTimeout(\n      () => this.makeRequest(),\n      process.env.NODE_ENV !== 'test' ? delay : 1,\n    );\n  }\n\n  makeRequest() {\n    const { resource, method, data, errorCallback, notificationCallback } = this.options;\n\n    // It's called everytime a new request is made. Useful to update the status.\n    notificationCallback(true);\n\n    return resource[method](data)\n      .then((response) => {\n        this.checkConditions(response);\n        notificationCallback(false);\n      })\n      .catch((error) => {\n        notificationCallback(false);\n        if (error.status === HTTP_STATUS_ABORTED) {\n          return;\n        }\n        errorCallback(error);\n      });\n  }\n\n  /**\n   * Stops the polling recursive chain\n   * and guarantees if the timeout is already running it won't make another request by\n   * cancelling the previously established timeout.\n   */\n  stop() {\n    this.canPoll = false;\n    clearTimeout(this.timeoutID);\n  }\n\n  /**\n   * Enables polling after it has been stopped\n   */\n  enable(options) {\n    if (options && options.data) {\n      this.options.data = options.data;\n    }\n\n    this.canPoll = true;\n\n    if (options && options.response) {\n      this.checkConditions(options.response);\n    }\n  }\n\n  /**\n   * Restarts polling after it has been stopped and makes a request\n   */\n  restart(options) {\n    this.enable(options);\n    this.makeRequest();\n  }\n}\n","(function() {\n  var computeScore, countDir, file_coeff, getExtension, getExtensionScore, isMatch, scorePath, scoreSize, tau_depth, _ref;\n\n  _ref = require('./scorer'), isMatch = _ref.isMatch, computeScore = _ref.computeScore, scoreSize = _ref.scoreSize;\n\n  tau_depth = 20;\n\n  file_coeff = 2.5;\n\n  exports.score = function(string, query, options) {\n    var allowErrors, preparedQuery, score, string_lw;\n    preparedQuery = options.preparedQuery, allowErrors = options.allowErrors;\n    if (!(allowErrors || isMatch(string, preparedQuery.core_lw, preparedQuery.core_up))) {\n      return 0;\n    }\n    string_lw = string.toLowerCase();\n    score = computeScore(string, string_lw, preparedQuery);\n    score = scorePath(string, string_lw, score, options);\n    return Math.ceil(score);\n  };\n\n  scorePath = function(subject, subject_lw, fullPathScore, options) {\n    var alpha, basePathScore, basePos, depth, end, extAdjust, fileLength, pathSeparator, preparedQuery, useExtensionBonus;\n    if (fullPathScore === 0) {\n      return 0;\n    }\n    preparedQuery = options.preparedQuery, useExtensionBonus = options.useExtensionBonus, pathSeparator = options.pathSeparator;\n    end = subject.length - 1;\n    while (subject[end] === pathSeparator) {\n      end--;\n    }\n    basePos = subject.lastIndexOf(pathSeparator, end);\n    fileLength = end - basePos;\n    extAdjust = 1.0;\n    if (useExtensionBonus) {\n      extAdjust += getExtensionScore(subject_lw, preparedQuery.ext, basePos, end, 2);\n      fullPathScore *= extAdjust;\n    }\n    if (basePos === -1) {\n      return fullPathScore;\n    }\n    depth = preparedQuery.depth;\n    while (basePos > -1 && depth-- > 0) {\n      basePos = subject.lastIndexOf(pathSeparator, basePos - 1);\n    }\n    basePathScore = basePos === -1 ? fullPathScore : extAdjust * computeScore(subject.slice(basePos + 1, end + 1), subject_lw.slice(basePos + 1, end + 1), preparedQuery);\n    alpha = 0.5 * tau_depth / (tau_depth + countDir(subject, end + 1, pathSeparator));\n    return alpha * basePathScore + (1 - alpha) * fullPathScore * scoreSize(0, file_coeff * fileLength);\n  };\n\n  exports.countDir = countDir = function(path, end, pathSeparator) {\n    var count, i;\n    if (end < 1) {\n      return 0;\n    }\n    count = 0;\n    i = -1;\n    while (++i < end && path[i] === pathSeparator) {\n      continue;\n    }\n    while (++i < end) {\n      if (path[i] === pathSeparator) {\n        count++;\n        while (++i < end && path[i] === pathSeparator) {\n          continue;\n        }\n      }\n    }\n    return count;\n  };\n\n  exports.getExtension = getExtension = function(str) {\n    var pos;\n    pos = str.lastIndexOf(\".\");\n    if (pos < 0) {\n      return \"\";\n    } else {\n      return str.substr(pos + 1);\n    }\n  };\n\n  getExtensionScore = function(candidate, ext, startPos, endPos, maxDepth) {\n    var m, matched, n, pos;\n    if (!ext.length) {\n      return 0;\n    }\n    pos = candidate.lastIndexOf(\".\", endPos);\n    if (!(pos > startPos)) {\n      return 0;\n    }\n    n = ext.length;\n    m = endPos - pos;\n    if (m < n) {\n      n = m;\n      m = ext.length;\n    }\n    pos++;\n    matched = -1;\n    while (++matched < n) {\n      if (candidate[pos + matched] !== ext[matched]) {\n        break;\n      }\n    }\n    if (matched === 0 && maxDepth > 0) {\n      return 0.9 * getExtensionScore(candidate, ext, startPos, pos - 2, maxDepth - 1);\n    }\n    return matched / m;\n  };\n\n}).call(this);\n","export const DOWNSTREAM = 'downstream';\nexport const MAIN = 'main';\nexport const UPSTREAM = 'upstream';\n\n/*\n  this value is based on the gl-pipeline-job-width class\n  plus some extra for the margins\n*/\nexport const ONE_COL_WIDTH = 180;\n\nexport const STAGE_VIEW = 'stage';\nexport const LAYER_VIEW = 'layer';\n\nexport const SKIP_RETRY_MODAL_KEY = 'skip_retry_modal';\nexport const VIEW_TYPE_KEY = 'pipeline_graph_view_type';\n\nexport const SINGLE_JOB = 'single_job';\nexport const JOB_DROPDOWN = 'job_dropdown';\n\nexport const BUILD_KIND = 'BUILD';\nexport const BRIDGE_KIND = 'BRIDGE';\n\nexport const ACTION_FAILURE = 'action_failure';\nexport const IID_FAILURE = 'missing_iid';\n\nexport const RETRY_ACTION_TITLE = 'Retry';\nexport const MANUAL_ACTION_TITLE = 'Run';\n\n/*\n  this poll interval is shared between the graph,\n  pipeline header, jobs tab and failed jobs tab to\n  keep all the data relatively in sync\n*/\nexport const POLL_INTERVAL = 10000;\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","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.shouldDisplayButton)?_c('gl-button',{attrs:{\"icon\":\"duo-chat\",\"variant\":\"confirm\",\"data-testid\":\"rca-duo-button\"},on:{\"click\":_vm.callDuo}},[_vm._v(\"\\n  \"+_vm._s(_vm.s__('Jobs|Troubleshoot'))+\"\\n\")]):_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!./root_cause_analysis_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!./root_cause_analysis_button.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\nimport { sendDuoChatCommand } from 'ee/ai/utils';\nimport { InternalEvents } from '~/tracking';\nimport { TYPENAME_CI_BUILD } from '~/graphql_shared/constants';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\n\nexport default {\n  components: {\n    GlButton,\n  },\n  mixins: [InternalEvents.mixin()],\n  props: {\n    canTroubleshootJob: {\n      type: Boolean,\n      required: true,\n    },\n    jobStatusGroup: {\n      type: String,\n      required: true,\n    },\n    jobId: {\n      type: Number,\n      required: false,\n      default: null,\n    },\n    jobGid: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    isBuild: {\n      type: Boolean,\n      required: false,\n      default: true,\n    },\n  },\n  computed: {\n    resourceId() {\n      return this.jobGid || convertToGraphQLId(TYPENAME_CI_BUILD, this.jobId);\n    },\n    jobFailed() {\n      const failedGroups = ['failed', 'failed-with-warnings'];\n\n      return failedGroups.includes(this.jobStatusGroup);\n    },\n    shouldDisplayButton() {\n      return this.jobFailed && this.canTroubleshootJob && this.isBuild;\n    },\n  },\n  mounted() {\n    this.trackEvent('render_root_cause_analysis');\n  },\n  methods: {\n    callDuo() {\n      this.trackEvent('click_root_cause_analysis');\n\n      sendDuoChatCommand({\n        question: '/troubleshoot',\n        resourceId: this.resourceId,\n      });\n    },\n  },\n};\n</script>\n<template>\n  <gl-button\n    v-if=\"shouldDisplayButton\"\n    icon=\"duo-chat\"\n    variant=\"confirm\"\n    data-testid=\"rca-duo-button\"\n    @click=\"callDuo\"\n  >\n    {{ s__('Jobs|Troubleshoot') }}\n  </gl-button>\n</template>\n","import { render, staticRenderFns } from \"./root_cause_analysis_button.vue?vue&type=template&id=9a360570\"\nimport script from \"./root_cause_analysis_button.vue?vue&type=script&lang=js\"\nexport * from \"./root_cause_analysis_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","import * as Sentry from '~/sentry/sentry_browser_wrapper';\n\nexport const reportToSentry = (component, failureType) => {\n  Sentry.captureException(failureType, {\n    tags: {\n      component,\n    },\n  });\n};\n","import debounce from 'lodash/debounce';\nimport isFunction from 'lodash/isFunction';\nimport range from 'lodash/range';\nimport { breakpoints, GlBreakpointInstance } from '../../../utils/breakpoints';\nimport { alignOptions, resizeDebounceTime } from '../../../utils/constants';\nimport { translate, sprintf } from '../../../utils/i18n';\nimport GlIcon from '../icon/icon';\nimport GlLink from '../link/link';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nconst pageRange = (from, to) => range(from, to + 1, 1);\nvar script = {\n  name: 'Pagination',\n  components: {\n    GlLink,\n    GlIcon\n  },\n  model: {\n    prop: 'value',\n    event: 'input'\n  },\n  props: {\n    value: {\n      type: Number,\n      required: false,\n      default: 1,\n      validator: x => x > 0\n    },\n    /**\n     * Number of items per page\n     */\n    perPage: {\n      type: Number,\n      required: false,\n      default: 20,\n      validator: x => x > 0\n    },\n    /**\n     * Total number of items\n     */\n    totalItems: {\n      type: Number,\n      required: false,\n      default: 0\n    },\n    /**\n     * The object must contain the xs, sm, md and default keys\n     */\n    limits: {\n      type: Object,\n      required: false,\n      default: () => ({\n        xs: 0,\n        sm: 3,\n        md: 9,\n        default: 9\n      }),\n      validator: value => {\n        const missingSizes = Object.keys(breakpoints).filter(size => !value[size]).length;\n        return missingSizes === 0 ? true : value.default;\n      }\n    },\n    /**\n     * A function that receives the page number and that returns a string representing the page URL\n     */\n    linkGen: {\n      type: Function,\n      required: false,\n      default: null\n    },\n    /**\n     * When using the compact pagination, use this prop to pass the previous page number\n     */\n    prevPage: {\n      type: Number,\n      required: false,\n      default: null\n    },\n    /**\n     * Text for the previous button (overridden by \"previous\" slot)\n     */\n    prevText: {\n      type: String,\n      required: false,\n      default: translate('GlPagination.prevText', 'Previous')\n    },\n    /**\n     * When using the compact pagination, use this prop to pass the next page number\n     */\n    nextPage: {\n      type: Number,\n      required: false,\n      default: null\n    },\n    /**\n     * Text for the next button (overridden by \"next\" slot)\n     */\n    nextText: {\n      type: String,\n      required: false,\n      default: translate('GlPagination.nextText', 'Next')\n    },\n    /**\n     * Text for the ellipsis (overridden by \"ellipsis-left\" and \"ellipsis-right\" slots)\n     */\n    ellipsisText: {\n      type: String,\n      required: false,\n      default: '…'\n    },\n    /**\n     * aria-label for the nav\n     */\n    labelNav: {\n      type: String,\n      required: false,\n      default: translate('GlPagination.nav', 'Pagination')\n    },\n    /**\n     * aria-label for the first page item\n     */\n    labelFirstPage: {\n      type: String,\n      required: false,\n      default: translate('GlPagination.labelFirstPage', 'Go to first page')\n    },\n    /**\n     * aria-label for the previous page item\n     */\n    labelPrevPage: {\n      type: String,\n      required: false,\n      default: translate('GlPagination.labelPrevPage', 'Go to previous page')\n    },\n    /**\n     * aria-label for the next page item\n     */\n    labelNextPage: {\n      type: String,\n      required: false,\n      default: translate('GlPagination.labelNextPage', 'Go to next page')\n    },\n    /**\n     * aria-label for the last page item\n     */\n    labelLastPage: {\n      type: String,\n      required: false,\n      default: translate('GlPagination.labelLastPage', 'Go to last page')\n    },\n    /**\n     * aria-label getter for numbered page items, defaults to \"Go to page <page_number>\"\n     */\n    labelPage: {\n      // note: `Function` support is for legacy reasons\n      type: [Function, String],\n      required: false,\n      default: translate('GlPagination.labelPage', 'Go to page %{page}')\n    },\n    /**\n     * Controls the component\\'s horizontal alignment, value should be one of \"left\", \"center\", \"right\" or \"fill\"\n     */\n    align: {\n      type: String,\n      required: false,\n      default: alignOptions.left,\n      validator: value => Object.keys(alignOptions).includes(value)\n    },\n    disabled: {\n      type: Boolean,\n      required: false,\n      default: false\n    }\n  },\n  data() {\n    return {\n      breakpoint: GlBreakpointInstance.getBreakpointSize(),\n      // If total pages count is below or equal to minTotalPagesToCollapse, collapsing is disabled\n      minTotalPagesToCollapse: 4\n    };\n  },\n  computed: {\n    isVisible() {\n      return this.totalPages > 1 || this.isCompactPagination;\n    },\n    isLinkBased() {\n      return isFunction(this.linkGen);\n    },\n    paginationLimit() {\n      return typeof this.limits[this.breakpoint] !== 'undefined' ? this.limits[this.breakpoint] : this.limits.default;\n    },\n    maxAdjacentPages() {\n      return Math.max(Math.ceil((this.paginationLimit - 1) / 2), 0);\n    },\n    totalPages() {\n      return Math.ceil(this.totalItems / this.perPage);\n    },\n    isFillAlign() {\n      return this.align === alignOptions.fill;\n    },\n    wrapperClasses() {\n      const classes = [];\n      if (this.align === alignOptions.center) {\n        classes.push('gl-justify-center');\n      }\n      if (this.align === alignOptions.right) {\n        classes.push('gl-justify-end');\n      }\n      if (this.isFillAlign) {\n        classes.push('gl-text-center');\n      }\n      return classes;\n    },\n    shouldCollapseLeftSide() {\n      const diff = this.value - this.maxAdjacentPages;\n\n      // Magic 3: prevents collapsing a single page on the left side\n      return diff >= this.maxAdjacentPages && diff > 3 && this.totalPages > this.minTotalPagesToCollapse;\n    },\n    shouldCollapseRightSide() {\n      // Magic 2: prevents collapsing a single page on the right side\n      const diff = this.totalPages - 2 - this.value;\n      return diff > this.maxAdjacentPages && this.totalPages > this.minTotalPagesToCollapse;\n    },\n    visibleItems() {\n      let items = [];\n      if (!this.isCompactPagination) {\n        let firstPage = this.shouldCollapseLeftSide ? this.value - this.maxAdjacentPages : 1;\n        // If we're on last page, show at least one page to the left\n        firstPage = Math.min(firstPage, this.totalPages - 1);\n        let lastPage = this.shouldCollapseRightSide ? this.value + this.maxAdjacentPages : this.totalPages;\n        // If we're on first page, show at least one page to the right\n        lastPage = Math.max(lastPage, 2);\n\n        // Default numbered items\n        items = pageRange(firstPage, lastPage).map(page => this.getPageItem(page));\n        if (this.shouldCollapseLeftSide) {\n          items.splice(0, 0, this.getPageItem(1, this.labelFirstPage), this.getEllipsisItem('left'));\n        }\n        if (this.shouldCollapseRightSide) {\n          items.push(this.getEllipsisItem('right'), this.getPageItem(this.totalPages, this.labelLastPage));\n        }\n      }\n      return items;\n    },\n    isCompactPagination() {\n      return Boolean(!this.totalItems && (this.prevPage || this.nextPage));\n    },\n    prevPageIsDisabled() {\n      return this.pageIsDisabled(this.value - 1);\n    },\n    nextPageIsDisabled() {\n      return this.pageIsDisabled(this.value + 1);\n    },\n    prevPageAriaLabel() {\n      return this.prevPageIsDisabled ? false : this.labelPrevPage || this.labelForPage(this.value - 1);\n    },\n    nextPageAriaLabel() {\n      return this.nextPageIsDisabled ? false : this.labelNextPage || this.labelForPage(this.value + 1);\n    },\n    prevPageHref() {\n      if (this.prevPageIsDisabled) return false;\n      if (this.isLinkBased) return this.linkGen(this.value - 1);\n      return '#';\n    },\n    nextPageHref() {\n      if (this.nextPageIsDisabled) return false;\n      if (this.isLinkBased) return this.linkGen(this.value + 1);\n      return '#';\n    }\n  },\n  created() {\n    window.addEventListener('resize', debounce(this.setBreakpoint, resizeDebounceTime));\n  },\n  beforeDestroy() {\n    window.removeEventListener('resize', debounce(this.setBreakpoint, resizeDebounceTime));\n  },\n  methods: {\n    labelForPage(page) {\n      if (isFunction(this.labelPage)) {\n        return this.labelPage(page);\n      }\n      return sprintf(this.labelPage, {\n        page\n      });\n    },\n    setBreakpoint() {\n      this.breakpoint = GlBreakpointInstance.getBreakpointSize();\n    },\n    pageIsDisabled(page) {\n      return this.disabled || page < 1 || this.isCompactPagination && page > this.value && !this.nextPage || !this.isCompactPagination && page > this.totalPages;\n    },\n    getPageItem(page) {\n      let label = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n      const commonAttrs = {\n        'aria-label': label || this.labelForPage(page),\n        href: '#',\n        class: []\n      };\n      const isActivePage = page === this.value;\n      const isDisabled = this.pageIsDisabled(page);\n      const attrs = {\n        ...commonAttrs\n      };\n      const listeners = {};\n      if (isActivePage) {\n        attrs.class.push('active');\n        attrs['aria-current'] = 'page';\n      }\n      // Disable previous and/or next buttons if needed\n      if (this.isLinkBased) {\n        attrs.href = this.linkGen(page);\n      }\n      listeners.click = e => this.handleClick(e, page);\n      return {\n        content: page,\n        component: isDisabled ? 'span' : GlLink,\n        disabled: isDisabled,\n        key: `page_${page}`,\n        slot: 'page-number',\n        slotData: {\n          page,\n          active: isActivePage,\n          disabled: isDisabled\n        },\n        attrs,\n        listeners\n      };\n    },\n    getEllipsisItem(side) {\n      return {\n        content: this.ellipsisText,\n        key: `ellipsis_${side}`,\n        slot: `ellipsis-${side}`,\n        component: 'span',\n        disabled: true,\n        slotData: {},\n        listeners: {}\n      };\n    },\n    handleClick(event, value) {\n      if (!this.isLinkBased) {\n        event.preventDefault();\n        /**\n         * Emitted when the page changes\n         * @event input\n         * @arg {number} value The page that just got loaded\n         */\n        this.$emit('input', value);\n      }\n    },\n    handlePrevious(event, value) {\n      this.handleClick(event, value);\n      /**\n       * Emitted when the \"previous\" button is clicked\n       * @event previous\n       */\n      this.$emit('previous');\n    },\n    handleNext(event, value) {\n      this.handleClick(event, value);\n      /**\n       * Emitted when the \"next\" button is clicked\n       * @event next\n       */\n      this.$emit('next');\n    }\n  }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isVisible)?_c('nav',{staticClass:\"gl-pagination\",attrs:{\"aria-label\":_vm.labelNav}},[_c('ul',{class:_vm.wrapperClasses},[_c('li',{class:{\n        disabled: _vm.prevPageIsDisabled,\n        'gl-flex-auto': _vm.isFillAlign,\n      },attrs:{\"aria-disabled\":_vm.prevPageIsDisabled,\"aria-hidden\":_vm.prevPageIsDisabled,\"data-testid\":\"gl-pagination-li\"}},[_c(_vm.prevPageIsDisabled ? 'span' : 'a',{tag:\"component\",staticClass:\"gl-pagination-item\",attrs:{\"data-testid\":\"gl-pagination-prev\",\"aria-label\":_vm.prevPageAriaLabel,\"href\":_vm.prevPageHref},on:{\"click\":function($event){!_vm.prevPageIsDisabled ? _vm.handlePrevious($event, _vm.value - 1) : null;}}},[_vm._t(\"previous\",function(){return [_c('gl-icon',{attrs:{\"name\":\"chevron-left\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-hidden sm:gl-block\"},[_vm._v(_vm._s(_vm.prevText))])]},null,{ page: _vm.value - 1, disabled: _vm.prevPageIsDisabled })],2)],1),_vm._v(\" \"),_vm._l((_vm.visibleItems),function(item){return _c('li',{key:item.key,class:{\n        disabled: item.disabled,\n        'gl-flex-auto': _vm.isFillAlign,\n      },attrs:{\"data-testid\":\"gl-pagination-li\"}},[_c(item.component,_vm._g(_vm._b({tag:\"component\",staticClass:\"gl-pagination-item\",attrs:{\"data-testid\":\"gl-pagination-item\",\"size\":\"md\",\"aria-disabled\":item.disabled}},'component',item.attrs,false),item.listeners),[_vm._t(item.slot,function(){return [_vm._v(_vm._s(item.content))]},null,item.slotData)],2)],1)}),_vm._v(\" \"),_c('li',{class:{\n        disabled: _vm.nextPageIsDisabled,\n        'gl-flex-auto': _vm.isFillAlign,\n      },attrs:{\"aria-disabled\":_vm.nextPageIsDisabled,\"aria-hidden\":_vm.nextPageIsDisabled,\"data-testid\":\"gl-pagination-li\"}},[_c(_vm.nextPageIsDisabled ? 'span' : 'a',{tag:\"component\",staticClass:\"gl-pagination-item\",attrs:{\"data-testid\":\"gl-pagination-next\",\"aria-label\":_vm.nextPageAriaLabel,\"href\":_vm.nextPageHref},on:{\"click\":function($event){!_vm.nextPageIsDisabled ? _vm.handleNext($event, _vm.value + 1) : null;}}},[_vm._t(\"next\",function(){return [_c('span',{staticClass:\"gl-hidden sm:gl-block\"},[_vm._v(_vm._s(_vm.nextText))]),_vm._v(\" \"),_c('gl-icon',{attrs:{\"name\":\"chevron-right\"}})]},null,{ page: _vm.value + 1, disabled: _vm.nextPageIsDisabled })],2)],1)],2)]):_vm._e()};\nvar __vue_staticRenderFns__ = [];\n\n  /* style */\n  const __vue_inject_styles__ = undefined;\n  /* scoped */\n  const __vue_scope_id__ = undefined;\n  /* module identifier */\n  const __vue_module_identifier__ = undefined;\n  /* functional template */\n  const __vue_is_functional_template__ = false;\n  /* style inject */\n  \n  /* style inject SSR */\n  \n  /* style inject shadow dom */\n  \n\n  \n  const __vue_component__ = __vue_normalize__(\n    { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n    __vue_inject_styles__,\n    __vue_script__,\n    __vue_scope_id__,\n    __vue_is_functional_template__,\n    __vue_module_identifier__,\n    false,\n    undefined,\n    undefined,\n    undefined\n  );\n\nexport default __vue_component__;\n","import Visibility from 'visibilityjs';\nimport { createAlert } from '~/alert';\nimport eventHub from '~/ci/event_hub';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport { historyPushState, buildUrlWithCurrentLocation } from '~/lib/utils/common_utils';\nimport { reportToSentry } from '~/ci/utils';\nimport { HTTP_STATUS_UNAUTHORIZED } from '~/lib/utils/http_status';\nimport Poll from '~/lib/utils/poll';\nimport { __ } from '~/locale';\nimport { validateParams } from '~/ci/pipeline_details/utils';\nimport { CANCEL_REQUEST, TOAST_MESSAGE } from '../constants';\n\nexport default {\n  data() {\n    return {\n      isLoading: false,\n      hasError: false,\n      isMakingRequest: false,\n      updateGraphDropdown: false,\n      hasMadeRequest: false,\n    };\n  },\n  computed: {\n    shouldRenderPagination() {\n      return !this.isLoading;\n    },\n  },\n  beforeMount() {\n    this.poll = new Poll({\n      resource: this.service,\n      method: 'getPipelines',\n      data: this.requestData ? this.requestData : undefined,\n      successCallback: this.successCallback,\n      errorCallback: this.errorCallback,\n      notificationCallback: this.setIsMakingRequest,\n    });\n\n    if (!Visibility.hidden()) {\n      this.isLoading = true;\n      this.poll.makeRequest();\n    } else {\n      // If tab is not visible we need to make the first request so we don't show the empty\n      // state without knowing if there are any pipelines\n      this.fetchPipelines();\n    }\n\n    Visibility.change(() => {\n      if (!Visibility.hidden()) {\n        this.poll.restart();\n      } else {\n        this.poll.stop();\n      }\n    });\n\n    eventHub.$on('postAction', this.postAction);\n    eventHub.$on('updateTable', this.updateTable);\n    eventHub.$on('runMergeRequestPipeline', this.runMergeRequestPipeline);\n  },\n  beforeDestroy() {\n    eventHub.$off('postAction', this.postAction);\n    eventHub.$off('updateTable', this.updateTable);\n    eventHub.$off('runMergeRequestPipeline', this.runMergeRequestPipeline);\n  },\n  destroyed() {\n    this.poll.stop();\n  },\n  methods: {\n    onCancelPipeline(pipeline) {\n      this.postAction(pipeline.cancel_path);\n    },\n    onRefreshPipelinesTable() {\n      this.updateTable();\n    },\n    onRetryPipeline(pipeline) {\n      this.postAction(pipeline.retry_path);\n    },\n    updateInternalState(parameters) {\n      this.poll.stop();\n\n      const queryString = Object.keys(parameters)\n        .map((parameter) => {\n          const value = parameters[parameter];\n          // update internal state for UI\n          this[parameter] = value;\n          return `${parameter}=${encodeURIComponent(value)}`;\n        })\n        .join('&');\n\n      // update polling parameters\n      this.requestData = parameters;\n\n      historyPushState(buildUrlWithCurrentLocation(`?${queryString}`));\n\n      this.isLoading = true;\n    },\n    /**\n     * Handles URL and query parameter changes.\n     * When the user uses the pagination or the tabs,\n     *  - update URL\n     *  - Make API request to the server with new parameters\n     *  - Update the polling function\n     *  - Update the internal state\n     */\n    updateContent(parameters) {\n      this.updateInternalState(parameters);\n\n      // fetch new data\n      return this.service\n        .getPipelines(this.requestData)\n        .then((response) => {\n          this.isLoading = false;\n          this.successCallback(response);\n\n          this.poll.enable({ data: this.requestData, response });\n        })\n        .catch((error) => {\n          this.isLoading = false;\n          this.errorCallback(error);\n\n          // restart polling\n          this.poll.restart({ data: this.requestData });\n        });\n    },\n    updateTable() {\n      // Cancel ongoing request\n      if (this.isMakingRequest) {\n        this.service.cancelationSource.cancel(CANCEL_REQUEST);\n      }\n      // Stop polling\n      this.poll.stop();\n      // Restarting the poll also makes an initial request\n      return this.poll.restart();\n    },\n    fetchPipelines() {\n      if (!this.isMakingRequest) {\n        this.isLoading = true;\n\n        this.getPipelines();\n      }\n    },\n    getPipelines() {\n      return this.service\n        .getPipelines(this.requestData)\n        .then((response) => this.successCallback(response))\n        .catch((error) => this.errorCallback(error));\n    },\n    setCommonData(pipelines, isUsingAsyncPipelineCreation = false) {\n      this.store.storePipelines(pipelines, isUsingAsyncPipelineCreation);\n      this.isLoading = false;\n      this.updateGraphDropdown = true;\n      this.hasMadeRequest = true;\n\n      // In case the previous polling request returned an error, we need to reset it\n      if (this.hasError) {\n        this.hasError = false;\n      }\n    },\n    errorCallback(error) {\n      this.hasMadeRequest = true;\n      this.isLoading = false;\n\n      if (error && error.message && error.message !== CANCEL_REQUEST) {\n        this.hasError = true;\n        this.updateGraphDropdown = false;\n      }\n      reportToSentry('pipelines_list', error);\n    },\n    setIsMakingRequest(isMakingRequest) {\n      this.isMakingRequest = isMakingRequest;\n\n      if (isMakingRequest) {\n        this.updateGraphDropdown = false;\n      }\n    },\n    postAction(endpoint) {\n      this.service\n        .postAction(endpoint)\n        .then(() => this.updateTable())\n        .catch(() =>\n          createAlert({\n            message: __('An error occurred while making the request.'),\n          }),\n        );\n    },\n\n    /**\n     * When the user clicks on the run pipeline button\n     * we toggle the state of the button to be disabled\n     *\n     * Once the post request has finished, we fetch the\n     * pipelines again to show the most recent data\n     *\n     * Once the pipeline has been updated, we toggle back the\n     * loading state and re-enable the run pipeline button\n     */\n    runMergeRequestPipeline(options) {\n      this.store.toggleIsRunningPipeline(true);\n\n      this.service\n        .runMRPipeline(options)\n        .then(() => {\n          if (!options.isAsync) {\n            this.$toast.show(TOAST_MESSAGE);\n          }\n\n          this.updateTable();\n        })\n        .catch((e) => {\n          const unauthorized = e.response.status === HTTP_STATUS_UNAUTHORIZED;\n          let errorMessage = __(\n            'An error occurred while trying to run a new pipeline for this merge request.',\n          );\n\n          if (unauthorized) {\n            errorMessage = __('You do not have permission to run a pipeline on this branch.');\n          }\n\n          createAlert({\n            message: errorMessage,\n            primaryButton: {\n              text: __('Learn more'),\n              link: helpPagePath('ci/pipelines/merge_request_pipelines.md'),\n            },\n          });\n          reportToSentry('run_mr_pipeline', e);\n        })\n        .finally(() => {\n          if (!options.isAsync) {\n            this.store.toggleIsRunningPipeline(false);\n          }\n        });\n    },\n    onChangePage(page) {\n      /* URLS parameters are strings, we need to parse to match types */\n      let params = {\n        page: Number(page).toString(),\n      };\n\n      if (this.scope) {\n        params.scope = this.scope;\n      }\n\n      params = this.onChangeWithFilter(params);\n\n      this.updateContent(params);\n    },\n\n    onChangeWithFilter(params) {\n      return { ...params, ...validateParams(this.requestData) };\n    },\n  },\n};\n","\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","(function() {\n  var basenameMatch, computeMatch, isMatch, isWordStart, match, mergeMatches, scoreAcronyms, scoreCharacter, scoreConsecutives, _ref;\n\n  _ref = require('./scorer'), isMatch = _ref.isMatch, isWordStart = _ref.isWordStart, scoreConsecutives = _ref.scoreConsecutives, scoreCharacter = _ref.scoreCharacter, scoreAcronyms = _ref.scoreAcronyms;\n\n  exports.match = match = function(string, query, options) {\n    var allowErrors, baseMatches, matches, pathSeparator, preparedQuery, string_lw;\n    allowErrors = options.allowErrors, preparedQuery = options.preparedQuery, pathSeparator = options.pathSeparator;\n    if (!(allowErrors || isMatch(string, preparedQuery.core_lw, preparedQuery.core_up))) {\n      return [];\n    }\n    string_lw = string.toLowerCase();\n    matches = computeMatch(string, string_lw, preparedQuery);\n    if (matches.length === 0) {\n      return matches;\n    }\n    if (string.indexOf(pathSeparator) > -1) {\n      baseMatches = basenameMatch(string, string_lw, preparedQuery, pathSeparator);\n      matches = mergeMatches(matches, baseMatches);\n    }\n    return matches;\n  };\n\n  exports.wrap = function(string, query, options) {\n    var matchIndex, matchPos, matchPositions, output, strPos, tagClass, tagClose, tagOpen, _ref1;\n    if ((options.wrap != null)) {\n      _ref1 = options.wrap, tagClass = _ref1.tagClass, tagOpen = _ref1.tagOpen, tagClose = _ref1.tagClose;\n    }\n    if (tagClass == null) {\n      tagClass = 'highlight';\n    }\n    if (tagOpen == null) {\n      tagOpen = '<strong class=\"' + tagClass + '\">';\n    }\n    if (tagClose == null) {\n      tagClose = '</strong>';\n    }\n    if (string === query) {\n      return tagOpen + string + tagClose;\n    }\n    matchPositions = match(string, query, options);\n    if (matchPositions.length === 0) {\n      return string;\n    }\n    output = '';\n    matchIndex = -1;\n    strPos = 0;\n    while (++matchIndex < matchPositions.length) {\n      matchPos = matchPositions[matchIndex];\n      if (matchPos > strPos) {\n        output += string.substring(strPos, matchPos);\n        strPos = matchPos;\n      }\n      while (++matchIndex < matchPositions.length) {\n        if (matchPositions[matchIndex] === matchPos + 1) {\n          matchPos++;\n        } else {\n          matchIndex--;\n          break;\n        }\n      }\n      matchPos++;\n      if (matchPos > strPos) {\n        output += tagOpen;\n        output += string.substring(strPos, matchPos);\n        output += tagClose;\n        strPos = matchPos;\n      }\n    }\n    if (strPos <= string.length - 1) {\n      output += string.substring(strPos);\n    }\n    return output;\n  };\n\n  basenameMatch = function(subject, subject_lw, preparedQuery, pathSeparator) {\n    var basePos, depth, end;\n    end = subject.length - 1;\n    while (subject[end] === pathSeparator) {\n      end--;\n    }\n    basePos = subject.lastIndexOf(pathSeparator, end);\n    if (basePos === -1) {\n      return [];\n    }\n    depth = preparedQuery.depth;\n    while (depth-- > 0) {\n      basePos = subject.lastIndexOf(pathSeparator, basePos - 1);\n      if (basePos === -1) {\n        return [];\n      }\n    }\n    basePos++;\n    end++;\n    return computeMatch(subject.slice(basePos, end), subject_lw.slice(basePos, end), preparedQuery, basePos);\n  };\n\n  mergeMatches = function(a, b) {\n    var ai, bj, i, j, m, n, out;\n    m = a.length;\n    n = b.length;\n    if (n === 0) {\n      return a.slice();\n    }\n    if (m === 0) {\n      return b.slice();\n    }\n    i = -1;\n    j = 0;\n    bj = b[j];\n    out = [];\n    while (++i < m) {\n      ai = a[i];\n      while (bj <= ai && ++j < n) {\n        if (bj < ai) {\n          out.push(bj);\n        }\n        bj = b[j];\n      }\n      out.push(ai);\n    }\n    while (j < n) {\n      out.push(b[j++]);\n    }\n    return out;\n  };\n\n  computeMatch = function(subject, subject_lw, preparedQuery, offset) {\n    var DIAGONAL, LEFT, STOP, UP, acro_score, align, backtrack, csc_diag, csc_row, csc_score, i, j, m, matches, move, n, pos, query, query_lw, score, score_diag, score_row, score_up, si_lw, start, trace;\n    if (offset == null) {\n      offset = 0;\n    }\n    query = preparedQuery.query;\n    query_lw = preparedQuery.query_lw;\n    m = subject.length;\n    n = query.length;\n    acro_score = scoreAcronyms(subject, subject_lw, query, query_lw).score;\n    score_row = new Array(n);\n    csc_row = new Array(n);\n    STOP = 0;\n    UP = 1;\n    LEFT = 2;\n    DIAGONAL = 3;\n    trace = new Array(m * n);\n    pos = -1;\n    j = -1;\n    while (++j < n) {\n      score_row[j] = 0;\n      csc_row[j] = 0;\n    }\n    i = -1;\n    while (++i < m) {\n      score = 0;\n      score_up = 0;\n      csc_diag = 0;\n      si_lw = subject_lw[i];\n      j = -1;\n      while (++j < n) {\n        csc_score = 0;\n        align = 0;\n        score_diag = score_up;\n        if (query_lw[j] === si_lw) {\n          start = isWordStart(i, subject, subject_lw);\n          csc_score = csc_diag > 0 ? csc_diag : scoreConsecutives(subject, subject_lw, query, query_lw, i, j, start);\n          align = score_diag + scoreCharacter(i, j, start, acro_score, csc_score);\n        }\n        score_up = score_row[j];\n        csc_diag = csc_row[j];\n        if (score > score_up) {\n          move = LEFT;\n        } else {\n          score = score_up;\n          move = UP;\n        }\n        if (align > score) {\n          score = align;\n          move = DIAGONAL;\n        } else {\n          csc_score = 0;\n        }\n        score_row[j] = score;\n        csc_row[j] = csc_score;\n        trace[++pos] = score > 0 ? move : STOP;\n      }\n    }\n    i = m - 1;\n    j = n - 1;\n    pos = i * n + j;\n    backtrack = true;\n    matches = [];\n    while (backtrack && i >= 0 && j >= 0) {\n      switch (trace[pos]) {\n        case UP:\n          i--;\n          pos -= n;\n          break;\n        case LEFT:\n          j--;\n          pos--;\n          break;\n        case DIAGONAL:\n          matches.push(i + offset);\n          j--;\n          i--;\n          pos -= n + 1;\n          break;\n        default:\n          backtrack = false;\n      }\n    }\n    matches.reverse();\n    return matches;\n  };\n\n}).call(this);\n","\n    var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"playJob\"},\"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\":165}};\n    doc.loc.source = {\"body\":\"#import \\\"../fragments/job.fragment.graphql\\\"\\n\\nmutation playJob($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[\"playJob\"] = oneQuery(doc, \"playJob\");\n        \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"content-list pipelines\"},[(_vm.isLoading)?_c('gl-loading-icon',{staticClass:\"prepend-top-20\",attrs:{\"label\":_vm.s__('Pipelines|Loading pipelines'),\"size\":\"lg\"}}):(_vm.shouldRenderErrorState)?_c('gl-empty-state',{attrs:{\"svg-path\":_vm.errorStateSvgPath,\"title\":_vm.s__(`Pipelines|There was an error fetching the pipelines.\n      Try again in a few moments or contact your support team.`),\"data-testid\":\"pipeline-error-empty-state\"}}):(_vm.shouldRenderEmptyState)?[_c('gl-empty-state',{attrs:{\"svg-path\":_vm.emptyStateSvgPath,\"svg-height\":150,\"title\":_vm.$options.i18n.emptyStateTitle,\"data-testid\":\"pipeline-empty-state\"},scopedSlots:_vm._u([{key:\"description\",fn:function(){return [_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.runPipelinePopoverDescription},scopedSlots:_vm._u([{key:\"ciDocsLink\",fn:function({ content }){return [_c('gl-link',{attrs:{\"href\":_vm.$options.mrPipelinesDocsPath,\"target\":\"_blank\",\"data-testid\":\"mr-pipelines-docs-link\"}},[_vm._v(_vm._s(content))])]}},{key:\"permissionDocsLink\",fn:function({ content }){return [_c('gl-link',{attrs:{\"href\":_vm.$options.userPermissionsDocsPath,\"target\":\"_blank\",\"data-testid\":\"user-permissions-docs-link\"}},[_vm._v(_vm._s(content))])]}}])})]},proxy:true},{key:\"actions\",fn:function(){return [_c('div',{staticClass:\"gl-align-middle\"},[_c('gl-button',{attrs:{\"variant\":\"confirm\",\"loading\":_vm.state.isRunningMergeRequestPipeline,\"data-testid\":\"run_pipeline_button\"},on:{\"click\":_vm.tryRunPipeline}},[_vm._v(\"\\n            \"+_vm._s(_vm.$options.i18n.runPipelineText)+\"\\n          \")])],1)]},proxy:true}])})]:(_vm.shouldRenderTable)?_c('div',[(_vm.canRenderPipelineButton)?_c('gl-button',{staticClass:\"gl-mb-3 gl-mt-3 lg:gl-hidden\",attrs:{\"block\":\"\",\"variant\":\"confirm\",\"data-testid\":\"run_pipeline_button_mobile\",\"loading\":_vm.state.isRunningMergeRequestPipeline},on:{\"click\":_vm.tryRunPipeline}},[_vm._v(\"\\n      \"+_vm._s(_vm.$options.i18n.runPipelineText)+\"\\n    \")]):_vm._e(),_vm._v(\" \"),_c('pipelines-table',{attrs:{\"is-creating-pipeline\":_vm.state.isRunningMergeRequestPipeline,\"pipeline-id-type\":_vm.$options.pipelineIdKey,\"pipelines\":_vm.state.pipelines,\"view-type\":_vm.viewType},on:{\"cancel-pipeline\":_vm.onCancelPipeline,\"refresh-pipelines-table\":_vm.onRefreshPipelinesTable,\"retry-pipeline\":_vm.onRetryPipeline},scopedSlots:_vm._u([{key:\"table-header-actions\",fn:function(){return [(_vm.canRenderPipelineButton)?_c('div',{staticClass:\"gl-text-right\"},[_c('gl-button',{attrs:{\"data-testid\":\"run_pipeline_button\",\"loading\":_vm.state.isRunningMergeRequestPipeline},on:{\"click\":_vm.tryRunPipeline}},[_vm._v(\"\\n            \"+_vm._s(_vm.$options.i18n.runPipelineText)+\"\\n          \")])],1):_vm._e()]},proxy:true}])})],1):_vm._e(),_vm._v(\" \"),(_vm.canRenderPipelineButton || _vm.shouldRenderEmptyState)?_c('gl-modal',{ref:\"modal\",attrs:{\"id\":_vm.modalId,\"modal-id\":_vm.modalId,\"title\":_vm.s__('Pipelines|Are you sure you want to run this pipeline?'),\"action-primary\":_vm.$options.modal.actionPrimary,\"action-cancel\":_vm.$options.modal.actionCancel},on:{\"primary\":_vm.onClickRunPipeline}},[_c('p',[_vm._v(\"\\n      \"+_vm._s(_vm.s__(\n          'Pipelines|This pipeline will run code originating from a forked project merge request. This means that the code can potentially have security considerations like exposing CI variables.',\n        ))+\"\\n    \")]),_vm._v(\" \"),_c('p',[_vm._v(\"\\n      \"+_vm._s(_vm.s__(\n          \"Pipelines|It is recommended the code is reviewed thoroughly before running this pipeline with the parent project's CI resource.\",\n        ))+\"\\n    \")]),_vm._v(\" \"),_c('p',[_vm._v(\"\\n      \"+_vm._s(_vm.s__('Pipelines|If you are unsure, please ask a project maintainer to review it for you.'))+\"\\n    \")]),_vm._v(\" \"),_c('gl-link',{attrs:{\"href\":_vm.$options.runPipelinesInTheParentProjectHelpPath,\"target\":\"_blank\"}},[_vm._v(\"\\n      \"+_vm._s(_vm.s__('Pipelines|More Information'))+\"\\n    \")])],1):_vm._e(),_vm._v(\" \"),(_vm.shouldRenderPagination)?_c('table-pagination',{attrs:{\"change\":_vm.onChangePage,\"page-info\":_vm.state.pageInfo}}):_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!./legacy_pipelines_table_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!./legacy_pipelines_table_wrapper.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlEmptyState, GlLoadingIcon, GlModal, GlLink, GlSprintf } from '@gitlab/ui';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport { getParameterByName } from '~/lib/utils/url_utility';\nimport PipelinesTable from '~/ci/common/pipelines_table.vue';\nimport { PIPELINE_ID_KEY } from '~/ci/constants';\nimport eventHub from '~/ci/event_hub';\nimport PipelinesMixin from '~/ci/pipeline_details/mixins/pipelines_mixin';\nimport PipelinesService from '~/ci/pipelines_page/services/pipelines_service';\nimport PipelineStore from '~/ci/pipeline_details/stores/pipelines_store';\nimport TablePagination from '~/vue_shared/components/pagination/table_pagination.vue';\nimport { s__, __ } from '~/locale';\n\nexport default {\n  components: {\n    GlButton,\n    GlEmptyState,\n    GlLink,\n    GlLoadingIcon,\n    GlModal,\n    GlSprintf,\n    PipelinesTable,\n    TablePagination,\n  },\n  mixins: [PipelinesMixin],\n  props: {\n    canCreatePipelineInTargetProject: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    endpoint: {\n      type: String,\n      required: true,\n    },\n    errorStateSvgPath: {\n      type: String,\n      required: true,\n    },\n    emptyStateSvgPath: {\n      type: String,\n      required: true,\n    },\n    isMergeRequestTable: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    mergeRequestId: {\n      type: Number,\n      required: false,\n      default: 0,\n    },\n    projectId: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    sourceProjectFullPath: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    targetProjectFullPath: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    viewType: {\n      type: String,\n      required: false,\n      default: 'root',\n    },\n  },\n\n  data() {\n    const store = new PipelineStore();\n\n    return {\n      store,\n      state: store.state,\n      page: getParameterByName('page') || '1',\n      requestData: {},\n      modalId: 'create-pipeline-for-fork-merge-request-modal',\n    };\n  },\n\n  computed: {\n    shouldRenderTable() {\n      return !this.isLoading && this.state.pipelines.length > 0 && !this.hasError;\n    },\n    shouldRenderErrorState() {\n      return this.hasError && !this.isLoading;\n    },\n    shouldRenderEmptyState() {\n      return this.state.pipelines.length === 0 && !this.shouldRenderErrorState;\n    },\n    /**\n     * The \"Run pipeline\" button can only be rendered when:\n     * - In MR view -  we use `canCreatePipelineInTargetProject` for that purpose\n     * - If the latest pipeline has the `detached_merge_request_pipeline` flag\n     *\n     * @returns {Boolean}\n     */\n    canRenderPipelineButton() {\n      return this.latestPipelineDetachedFlag;\n    },\n    isForkMergeRequest() {\n      return this.sourceProjectFullPath !== this.targetProjectFullPath;\n    },\n    isLatestPipelineCreatedInTargetProject() {\n      const latest = this.state.pipelines[0];\n\n      return latest?.project?.full_path === `/${this.targetProjectFullPath}`;\n    },\n    shouldShowSecurityWarning() {\n      return (\n        this.canCreatePipelineInTargetProject &&\n        this.isForkMergeRequest &&\n        !this.isLatestPipelineCreatedInTargetProject\n      );\n    },\n    /**\n     * Checks if either `detached_merge_request_pipeline` or\n     * `merge_request_pipeline` are tru in the first\n     * object in the pipelines array.\n     *\n     * @returns {Boolean}\n     */\n    latestPipelineDetachedFlag() {\n      const latest = this.state.pipelines[0];\n      return (\n        latest &&\n        latest.flags &&\n        (latest.flags.detached_merge_request_pipeline || latest.flags.merge_request_pipeline)\n      );\n    },\n  },\n  created() {\n    this.service = new PipelinesService(this.endpoint);\n    this.requestData = { page: this.page };\n  },\n  methods: {\n    successCallback(resp) {\n      // depending of the endpoint the response can either bring a `pipelines` key or not.\n      const pipelines = resp.data.pipelines || resp.data;\n\n      this.store.storePagination(resp.headers);\n      this.setCommonData(pipelines, this.isMergeRequestTable);\n\n      if (resp.headers?.['x-total']) {\n        const updatePipelinesEvent = new CustomEvent('update-pipelines-count', {\n          detail: { pipelineCount: resp.headers['x-total'] },\n        });\n\n        // notifiy to update the count in tabs\n        if (this.$el.parentElement) {\n          this.$el.parentElement.dispatchEvent(updatePipelinesEvent);\n        }\n      }\n    },\n    /**\n     * When the user clicks on the \"Run pipeline\" button\n     * we need to make a post request and\n     * to update the table content once the request is finished.\n     *\n     * We are emitting an event through the eventHub using the old pattern\n     * to make use of the code in mixins/pipelines.js that handles all the\n     * table events\n     *\n     */\n    onClickRunPipeline() {\n      eventHub.$emit('runMergeRequestPipeline', {\n        projectId: this.projectId,\n        mergeRequestId: this.mergeRequestId,\n        isAsync: this.isMergeRequestTable,\n      });\n    },\n    tryRunPipeline() {\n      if (!this.shouldShowSecurityWarning) {\n        this.onClickRunPipeline();\n      } else {\n        this.$refs.modal.show();\n      }\n    },\n  },\n  pipelineIdKey: PIPELINE_ID_KEY,\n  modal: {\n    actionPrimary: {\n      text: s__('Pipeline|Run pipeline'),\n      attributes: {\n        variant: 'danger',\n      },\n    },\n    actionCancel: {\n      text: __('Cancel'),\n      attributes: {\n        variant: 'default',\n      },\n    },\n  },\n  i18n: {\n    runPipelinePopoverTitle: s__('Pipeline|Run merge request pipeline'),\n    runPipelinePopoverDescription: s__(\n      `Pipeline|To run a merge request pipeline, the jobs in the CI/CD configuration file %{ciDocsLinkStart}must be configured%{ciDocsLinkEnd} to run in merge request pipelines\n      and you must have %{permissionDocsLinkStart}sufficient permissions%{permissionDocsLinkEnd} in the source project.`,\n    ),\n    runPipelineText: s__('Pipeline|Run pipeline'),\n    emptyStateTitle: s__('Pipelines|There are currently no pipelines.'),\n  },\n  mrPipelinesDocsPath: helpPagePath('ci/pipelines/merge_request_pipelines.md', {\n    anchor: 'prerequisites',\n  }),\n  userPermissionsDocsPath: helpPagePath('user/permissions.md', {\n    anchor: 'cicd',\n  }),\n  runPipelinesInTheParentProjectHelpPath: helpPagePath(\n    '/ci/pipelines/merge_request_pipelines.html',\n    {\n      anchor: 'run-pipelines-in-the-parent-project',\n    },\n  ),\n};\n</script>\n<template>\n  <div class=\"content-list pipelines\">\n    <gl-loading-icon\n      v-if=\"isLoading\"\n      :label=\"s__('Pipelines|Loading pipelines')\"\n      size=\"lg\"\n      class=\"prepend-top-20\"\n    />\n\n    <gl-empty-state\n      v-else-if=\"shouldRenderErrorState\"\n      :svg-path=\"errorStateSvgPath\"\n      :title=\"\n        s__(`Pipelines|There was an error fetching the pipelines.\n        Try again in a few moments or contact your support team.`)\n      \"\n      data-testid=\"pipeline-error-empty-state\"\n    />\n    <template v-else-if=\"shouldRenderEmptyState\">\n      <gl-empty-state\n        :svg-path=\"emptyStateSvgPath\"\n        :svg-height=\"150\"\n        :title=\"$options.i18n.emptyStateTitle\"\n        data-testid=\"pipeline-empty-state\"\n      >\n        <template #description>\n          <gl-sprintf :message=\"$options.i18n.runPipelinePopoverDescription\">\n            <template #ciDocsLink=\"{ content }\">\n              <gl-link\n                :href=\"$options.mrPipelinesDocsPath\"\n                target=\"_blank\"\n                data-testid=\"mr-pipelines-docs-link\"\n                >{{ content }}</gl-link\n              >\n            </template>\n            <template #permissionDocsLink=\"{ content }\">\n              <gl-link\n                :href=\"$options.userPermissionsDocsPath\"\n                target=\"_blank\"\n                data-testid=\"user-permissions-docs-link\"\n                >{{ content }}</gl-link\n              >\n            </template>\n          </gl-sprintf>\n        </template>\n\n        <template #actions>\n          <div class=\"gl-align-middle\">\n            <gl-button\n              variant=\"confirm\"\n              :loading=\"state.isRunningMergeRequestPipeline\"\n              data-testid=\"run_pipeline_button\"\n              @click=\"tryRunPipeline\"\n            >\n              {{ $options.i18n.runPipelineText }}\n            </gl-button>\n          </div>\n        </template>\n      </gl-empty-state>\n    </template>\n\n    <div v-else-if=\"shouldRenderTable\">\n      <gl-button\n        v-if=\"canRenderPipelineButton\"\n        block\n        class=\"gl-mb-3 gl-mt-3 lg:gl-hidden\"\n        variant=\"confirm\"\n        data-testid=\"run_pipeline_button_mobile\"\n        :loading=\"state.isRunningMergeRequestPipeline\"\n        @click=\"tryRunPipeline\"\n      >\n        {{ $options.i18n.runPipelineText }}\n      </gl-button>\n\n      <pipelines-table\n        :is-creating-pipeline=\"state.isRunningMergeRequestPipeline\"\n        :pipeline-id-type=\"$options.pipelineIdKey\"\n        :pipelines=\"state.pipelines\"\n        :view-type=\"viewType\"\n        @cancel-pipeline=\"onCancelPipeline\"\n        @refresh-pipelines-table=\"onRefreshPipelinesTable\"\n        @retry-pipeline=\"onRetryPipeline\"\n      >\n        <template #table-header-actions>\n          <div v-if=\"canRenderPipelineButton\" class=\"gl-text-right\">\n            <gl-button\n              data-testid=\"run_pipeline_button\"\n              :loading=\"state.isRunningMergeRequestPipeline\"\n              @click=\"tryRunPipeline\"\n            >\n              {{ $options.i18n.runPipelineText }}\n            </gl-button>\n          </div>\n        </template>\n      </pipelines-table>\n    </div>\n\n    <gl-modal\n      v-if=\"canRenderPipelineButton || shouldRenderEmptyState\"\n      :id=\"modalId\"\n      ref=\"modal\"\n      :modal-id=\"modalId\"\n      :title=\"s__('Pipelines|Are you sure you want to run this pipeline?')\"\n      :action-primary=\"$options.modal.actionPrimary\"\n      :action-cancel=\"$options.modal.actionCancel\"\n      @primary=\"onClickRunPipeline\"\n    >\n      <p>\n        {{\n          s__(\n            'Pipelines|This pipeline will run code originating from a forked project merge request. This means that the code can potentially have security considerations like exposing CI variables.',\n          )\n        }}\n      </p>\n      <p>\n        {{\n          s__(\n            \"Pipelines|It is recommended the code is reviewed thoroughly before running this pipeline with the parent project's CI resource.\",\n          )\n        }}\n      </p>\n      <p>\n        {{\n          s__('Pipelines|If you are unsure, please ask a project maintainer to review it for you.')\n        }}\n      </p>\n      <gl-link :href=\"$options.runPipelinesInTheParentProjectHelpPath\" target=\"_blank\">\n        {{ s__('Pipelines|More Information') }}\n      </gl-link>\n    </gl-modal>\n\n    <table-pagination\n      v-if=\"shouldRenderPagination\"\n      :change=\"onChangePage\"\n      :page-info=\"state.pageInfo\"\n    />\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./legacy_pipelines_table_wrapper.vue?vue&type=template&id=114fb4e4\"\nimport script from \"./legacy_pipelines_table_wrapper.vue?vue&type=script&lang=js\"\nexport * from \"./legacy_pipelines_table_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('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","import createEventHub from '~/helpers/event_hub_factory';\n\nexport default createEventHub();\n","import { extend } from '../../vue';\nimport { NAME_TABLE_LITE } from '../../constants/components';\nimport { sortKeys } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { hasListenerMixin } from '../../mixins/has-listener';\nimport { props as props$1, idMixin } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { props as props$2, captionMixin } from './helpers/mixin-caption';\nimport { props as props$3, colgroupMixin } from './helpers/mixin-colgroup';\nimport { props as props$4, itemsMixin } from './helpers/mixin-items';\nimport { props as props$5, stackedMixin } from './helpers/mixin-stacked';\nimport { props as props$6, tableRendererMixin } from './helpers/mixin-table-renderer';\nimport { props as props$7, tbodyMixin } from './helpers/mixin-tbody';\nimport { props as props$8, tfootMixin } from './helpers/mixin-tfoot';\nimport { props as props$9, theadMixin } from './helpers/mixin-thead';\n\n// --- Props ---\n\nconst props = makePropsConfigurable(sortKeys({\n  ...props$1,\n  ...props$2,\n  ...props$3,\n  ...props$4,\n  ...props$5,\n  ...props$6,\n  ...props$7,\n  ...props$8,\n  ...props$9\n}), NAME_TABLE_LITE);\n\n// --- Main component ---\n\n// @vue/component\nconst BTableLite = /*#__PURE__*/extend({\n  name: NAME_TABLE_LITE,\n  // Order of mixins is important!\n  // They are merged from first to last, followed by this component\n  mixins: [\n  // General mixins\n  attrsMixin, hasListenerMixin, idMixin, normalizeSlotMixin,\n  // Required table mixins\n  itemsMixin, tableRendererMixin, stackedMixin, theadMixin, tfootMixin, tbodyMixin,\n  // Table features mixins\n  // These are pretty lightweight, and are useful for lightweight tables\n  captionMixin, colgroupMixin],\n  props\n\n  // Render function is provided by `tableRendererMixin`\n});\n\nexport { BTableLite, props };\n","import { BTableLite } from '../../../vendor/bootstrap-vue/src/components/table/table-lite';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst {\n  tableClass\n} = BTableLite.options.props;\nvar script = {\n  name: 'GlTableLite',\n  components: {\n    BTableLite\n  },\n  inheritAttrs: false,\n  props: {\n    tableClass,\n    fields: {\n      type: Array,\n      required: false,\n      default: null\n    },\n    stickyHeader: {\n      type: Boolean,\n      default: false,\n      required: false\n    }\n  },\n  computed: {\n    stickyHeaderClass() {\n      return this.stickyHeader ? 'gl-table--sticky-header' : null;\n    },\n    localTableClass() {\n      return ['gl-table', this.tableClass, this.stickyHeaderClass];\n    }\n  }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-table-lite',_vm._g(_vm._b({attrs:{\"table-class\":_vm.localTableClass,\"fields\":_vm.fields},scopedSlots:_vm._u([_vm._l((Object.keys(_vm.$scopedSlots)),function(slot){return {key:slot,fn:function(scope){return [_vm._t(slot,null,null,scope)]}}})],null,true)},'b-table-lite',_vm.$attrs,false),_vm.$listeners))};\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","(function() {\n  var Query, pathScorer, pluckCandidates, scorer, sortCandidates;\n\n  scorer = require('./scorer');\n\n  pathScorer = require('./pathScorer');\n\n  Query = require('./query');\n\n  pluckCandidates = function(a) {\n    return a.candidate;\n  };\n\n  sortCandidates = function(a, b) {\n    return b.score - a.score;\n  };\n\n  module.exports = function(candidates, query, options) {\n    var bKey, candidate, key, maxInners, maxResults, score, scoreProvider, scoredCandidates, spotLeft, string, usePathScoring, _i, _len;\n    scoredCandidates = [];\n    key = options.key, maxResults = options.maxResults, maxInners = options.maxInners, usePathScoring = options.usePathScoring;\n    spotLeft = (maxInners != null) && maxInners > 0 ? maxInners : candidates.length + 1;\n    bKey = key != null;\n    scoreProvider = usePathScoring ? pathScorer : scorer;\n    for (_i = 0, _len = candidates.length; _i < _len; _i++) {\n      candidate = candidates[_i];\n      string = bKey ? candidate[key] : candidate;\n      if (!string) {\n        continue;\n      }\n      score = scoreProvider.score(string, query, options);\n      if (score > 0) {\n        scoredCandidates.push({\n          candidate: candidate,\n          score: score\n        });\n        if (!--spotLeft) {\n          break;\n        }\n      }\n    }\n    scoredCandidates.sort(sortCandidates);\n    candidates = scoredCandidates.map(pluckCandidates);\n    if (maxResults != null) {\n      candidates = candidates.slice(0, maxResults);\n    }\n    return candidates;\n  };\n\n}).call(this);\n"],"sourceRoot":""}