{"version":3,"sources":["webpack:///./vue_shared/components/gl_modal.vue?c2e0","webpack:///vue_shared/components/gl_modal.vue","webpack:///./vue_shared/components/gl_modal.vue?b1d8","webpack:///./vue_shared/components/gl_modal.vue","webpack:///./vue_shared/components/loading_button.vue?2aa2","webpack:///./vue_shared/components/loading_button.vue?9621","webpack:///vue_shared/components/loading_button.vue","webpack:///./vue_shared/components/loading_button.vue","webpack:///./pipelines/constants.js","webpack:///./pipelines/components/graph/job_name_component.vue?dbe0","webpack:///./pipelines/components/graph/job_name_component.vue?ace4","webpack:///pipelines/components/graph/job_name_component.vue","webpack:///./pipelines/components/graph/job_name_component.vue","webpack:///./pipelines/components/graph/job_component.vue?4339","webpack:///./pipelines/components/graph/action_component.vue?19e4","webpack:///pipelines/components/graph/action_component.vue","webpack:///./pipelines/components/graph/job_component.vue?8e94","webpack:///pipelines/components/graph/job_component.vue","webpack:///./pipelines/components/graph/action_component.vue","webpack:///./pipelines/components/graph/action_component.vue?45b1","webpack:///./pipelines/components/graph/job_component.vue","webpack:///./vue_shared/components/commit.vue?5ce2","webpack:///./vue_shared/components/commit.vue?116d","webpack:///vue_shared/components/commit.vue","webpack:///./vue_shared/components/commit.vue","webpack:///./pipelines/components/empty_state.vue?72bb","webpack:///./pipelines/components/empty_state.vue?8e17","webpack:///pipelines/components/empty_state.vue","webpack:///./pipelines/components/empty_state.vue","webpack:///./vue_shared/directives/popover.js","webpack:///./pipelines/components/stage.vue?26f0","webpack:///./pipelines/components/stage.vue?e50b","webpack:///pipelines/components/stage.vue","webpack:///./pipelines/components/stage.vue","webpack:///./pipelines/components/blank_state.vue?ed8e","webpack:///pipelines/components/blank_state.vue","webpack:///./pipelines/components/blank_state.vue","webpack:///./pipelines/components/blank_state.vue?53b5","webpack:///./pipelines/components/pipelines_actions.vue?08a2","webpack:///pipelines/components/pipelines_actions.vue","webpack:///./pipelines/components/pipelines_actions.vue","webpack:///./pipelines/components/pipelines_actions.vue?0b5f","webpack:///./pipelines/components/pipelines_artifacts.vue?810a","webpack:///pipelines/components/pipelines_artifacts.vue","webpack:///./pipelines/components/pipelines_artifacts.vue","webpack:///./pipelines/components/pipelines_artifacts.vue?2190","webpack:///./pipelines/components/pipeline_url.vue?5a36","webpack:///pipelines/components/pipeline_url.vue","webpack:///./pipelines/components/pipeline_url.vue","webpack:///./pipelines/components/pipeline_url.vue?3734","webpack:///./pipelines/components/time_ago.vue?d48f","webpack:///pipelines/components/time_ago.vue","webpack:///./pipelines/components/time_ago.vue","webpack:///./pipelines/components/time_ago.vue?d3f6","webpack:///./pipelines/components/pipelines_table_row.vue?55b3","webpack:///pipelines/components/pipelines_table_row.vue","webpack:///./pipelines/components/pipelines_table.vue?254d","webpack:///pipelines/components/pipelines_table.vue","webpack:///./pipelines/components/pipelines_table_row.vue","webpack:///./pipelines/components/pipelines_table_row.vue?f284","webpack:///./pipelines/components/pipelines_table.vue","webpack:///./pipelines/components/pipelines_table.vue?aa51","webpack:///./pipelines/mixins/pipelines.js","webpack:///./pipelines/stores/pipelines_store.js","webpack:///./pipelines/services/pipelines_service.js","webpack:////opt/gitlab/embedded/service/gitlab-rails/app/views/shared/icons/_icon_timer.svg","webpack:///./pipelines/event_hub.js","webpack:///./vue_shared/components/user_avatar/user_avatar_link.vue?c0d6","webpack:///./vue_shared/components/user_avatar/user_avatar_link.vue?9c2f","webpack:///vue_shared/components/user_avatar/user_avatar_link.vue","webpack:///./vue_shared/components/user_avatar/user_avatar_link.vue"],"names":["buttonVariants","sizeVariants","components_gl_modalvue_type_script_lang_js","name","props","id","type","String","required","default","modalSize","validator","value","includes","headerTitleText","footerPrimaryButtonVariant","footerPrimaryButtonText","computed","modalSizeClass","this","methods","emitCancel","event","$emit","emitSubmit","component","Object","componentNormalizer","_vm","_h","$createElement","_c","_self","staticClass","attrs","tabindex","role","class","_t","_v","_s","data-dismiss","aria-label","s__","on","click","$event","aria-hidden","__webpack_exports__","components_loading_buttonvue_type_script_lang_js","components","loadingIcon","loading","Boolean","disabled","label","containerClass","Array","onClick","e","append-right-5","inline","_e","CANCEL_REQUEST","PIPELINES_TABLE","graph_job_name_componentvue_type_script_lang_js","ciIcon","status","graph_action_componentvue_type_script_lang_js","Icon","directives","tooltip","tooltipText","link","actionIcon","data","isDisabled","cssClass","actionIconDash","text_utility","onClickAction","_this","jquery_default","$el","axios_utils","post","then","catch","flash","locale","graph_job_componentvue_type_script_lang_js","ActionComponent","rawName","title","data-container","data-boundary","JobNameComponent","job","cssClassJobName","textBuilder","push","join","hasAction","action","path","pipelineActionRequestComplete","job_component_component","href","details_path","data-html","tooltip-text","action-icon","icon","components_commitvue_type_script_lang_js","UserAvatarLink","user_avatar_link","tag","commitRef","commitUrl","shortSha","author","showBranch","hasCommitRef","ref_url","hasAuthor","avatar_url","username","userImageAltDescription","link-href","img-src","img-alt","components_empty_statevue_type_script_lang_js","helpPagePath","emptyStateSvgPath","canSetCi","src","bind","el","binding","jquery__WEBPACK_IMPORTED_MODULE_0___default","popover","unbind","components_stagevue_type_script_lang_js","LoadingIcon","loading_icon","JobComponent","job_component","stage","updateDropdown","isLoading","dropdownContent","dropdownClass","length","triggerButtonClass","group","borderlessIcon","watch","isDropdownOpen","fetchJobs","updated","stopDropdownClickPropagation","onClickStage","event_hub","get","dropdown_path","_ref","latest_statuses","closeDropdown","stopPropagation","$refs","dropdown","classList","contains","constants","ref","data-placement","data-toggle","data-display","aria-haspopup","aria-expanded","aria-labelledby","_l","key","css-class-job-name","components_blank_statevue_type_script_lang_js","svgPath","message","blank_state","components_pipelines_actionsvue_type_script_lang_js","actions","endpoint","isActionDisabled","undefined","playable","pipelines_actions","i","components_pipelines_artifactsvue_type_script_lang_js","artifacts","pipelines_artifacts","artifact","rel","download","components_pipeline_urlvue_type_script_lang_js","userAvatarLink","pipeline","autoDevopsHelpPath","user","popoverOptions","html","trigger","placement","content","pipeline_url","flags","yaml_errors","failure_reason","expression","components_time_agovue_type_script_lang_js","mixins","timeago","finishedTime","duration","Number","iconTimerSvg","_icon_timer_default","a","hasDuration","hasFinishedTime","durationFormated","date","Date","hh","getUTCHours","mm","getUTCMinutes","ss","getSeconds","time_ago","domProps","innerHTML","tooltipTitle","timeFormated","components_pipelines_table_rowvue_type_script_lang_js","PipelinesActionsComponent","PipelinesArtifactsComponent","CommitComponent","commit","PipelineStage","PipelineUrl","CiBadge","ci_badge_link","PipelinesTimeago","LoadingButton","loading_button","updateGraphDropdown","viewType","cancelingPipeline","pipelinesTable","isRetrying","commitAuthor","commitAuthorInformation","author_gravatar_url","assign","author_email","author_name","commitTag","keys","reduce","accumulator","prop","commit_path","commitShortSha","short_id","commitTitle","pipelineDuration","details","pipelineFinishedAt","finished_at","pipelineStatus","displayPipelineActions","retryable","cancelable","manual_actions","isChildView","isCancelling","handleCancelClick","pipelineId","cancel_path","handleRetryClick","retry_path","components_pipelines_tablevue_type_script_lang_js","PipelinesTableRowComponent","show-text","auto-devops-help-path","commit-ref","commit-url","short-sha","show-branch","stages","index","$options","update-dropdown","finished-time","container-class","data-target","Modal","gl_modal","pipelines","modalTitle","modalText","created","$on","setModalData","beforeDestroy","$off","onSubmit","pipelines_table","_m","model","update-graph-dropdown","view-type","canceling-pipeline","header-title-text","footer-primary-button-variant","footer-primary-button-text","submit","PipelinesTableComponent","SvgBlankState","EmptyState","empty_state","hasError","isMakingRequest","hasMadeRequest","beforeMount","poll","resource","service","method","requestData","successCallback","errorCallback","notificationCallback","setIsMakingRequest","visibilityjs_default","hidden","fetchPipelines","makeRequest","change","stop","restart","postAction","updateTable","destroyed","_this2","cancelationSource","cancel","getPipelines","_this3","response","error","setCommonData","store","storePipelines","_this4","PipelinesStore","_classCallCheck","state","count","pageInfo","arguments","pagination","paginationInfo","normalizedHeaders","_lib_utils_common_utils__WEBPACK_IMPORTED_MODULE_0__","PipelinesService","root","indexOf","scope","page","CancelToken","_lib_utils_axios_utils__WEBPACK_IMPORTED_MODULE_0__","source","params","cancelToken","token","module","exports","vue__WEBPACK_IMPORTED_MODULE_0__","user_avatar_user_avatar_linkvue_type_script_lang_js","userAvatarImage","user_avatar_image","linkHref","imgSrc","imgAlt","imgCssClasses","imgSize","tooltipPlacement","shouldShowUsername","avatarTooltipText","css-classes","size","tooltip-placement"],"mappings":"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","file":"commons~pages.projects.commit.pipelines~pages.projects.pipelines.index.6c139261.chunk.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal fade\",attrs:{\"id\":_vm.id,\"tabindex\":\"-1\",\"role\":\"dialog\"}},[_c('div',{staticClass:\"modal-dialog\",class:_vm.modalSizeClass,attrs:{\"role\":\"document\"}},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-header\"},[_vm._t(\"header\",[_c('h4',{staticClass:\"modal-title\"},[_vm._t(\"title\",[_vm._v(\"\\n              \"+_vm._s(_vm.headerTitleText)+\"\\n            \")])],2),_vm._v(\" \"),_c('button',{staticClass:\"close js-modal-close-action\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\",\"aria-label\":_vm.s__('Modal|Close')},on:{\"click\":function($event){_vm.emitCancel($event)}}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])])])],2),_vm._v(\" \"),_c('div',{staticClass:\"modal-body\"},[_vm._t(\"default\")],2),_vm._v(\" \"),_c('div',{staticClass:\"modal-footer\"},[_vm._t(\"footer\",[_c('button',{staticClass:\"btn js-modal-cancel-action\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"},on:{\"click\":function($event){_vm.emitCancel($event)}}},[_vm._v(\"\\n            \"+_vm._s(_vm.s__('Modal|Cancel'))+\"\\n          \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn js-modal-primary-action\",class:(\"btn-\" + _vm.footerPrimaryButtonVariant),attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"},on:{\"click\":function($event){_vm.emitSubmit($event)}}},[_vm._v(\"\\n            \"+_vm._s(_vm.footerPrimaryButtonText)+\"\\n          \")])])],2)])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nconst buttonVariants = ['danger', 'primary', 'success', 'warning'];\nconst sizeVariants = ['sm', 'md', 'lg', 'xl'];\n\nexport default {\n  name: 'GlModal',\n  props: {\n    id: {\n      type: String,\n      required: false,\n      default: null,\n    },\n    modalSize: {\n      type: String,\n      required: false,\n      default: 'md',\n      validator: value => sizeVariants.includes(value),\n    },\n    headerTitleText: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    footerPrimaryButtonVariant: {\n      type: String,\n      required: false,\n      default: 'primary',\n      validator: value => buttonVariants.includes(value),\n    },\n    footerPrimaryButtonText: {\n      type: String,\n      required: false,\n      default: '',\n    },\n  },\n  computed: {\n    modalSizeClass() {\n      return this.modalSize === 'md' ? '' : `modal-${this.modalSize}`;\n    },\n  },\n  methods: {\n    emitCancel(event) {\n      this.$emit('cancel', event);\n    },\n    emitSubmit(event) {\n      this.$emit('submit', event);\n    },\n  },\n};\n</script>\n\n<template>\n  <div\n    :id=\"id\"\n    class=\"modal fade\"\n    tabindex=\"-1\"\n    role=\"dialog\"\n  >\n    <div\n      class=\"modal-dialog\"\n      :class=\"modalSizeClass\"\n      role=\"document\"\n    >\n      <div class=\"modal-content\">\n        <div class=\"modal-header\">\n          <slot name=\"header\">\n            <h4 class=\"modal-title\">\n              <slot name=\"title\">\n                {{ headerTitleText }}\n              </slot>\n            </h4>\n            <button\n              type=\"button\"\n              class=\"close js-modal-close-action\"\n              data-dismiss=\"modal\"\n              :aria-label=\"s__('Modal|Close')\"\n              @click=\"emitCancel($event)\"\n            >\n              <span aria-hidden=\"true\">&times;</span>\n            </button>\n          </slot>\n        </div>\n\n        <div class=\"modal-body\">\n          <slot></slot>\n        </div>\n\n        <div class=\"modal-footer\">\n          <slot name=\"footer\">\n            <button\n              type=\"button\"\n              class=\"btn js-modal-cancel-action\"\n              data-dismiss=\"modal\"\n              @click=\"emitCancel($event)\"\n            >\n              {{ s__('Modal|Cancel') }}\n            </button>\n            <button\n              type=\"button\"\n              class=\"btn js-modal-primary-action\"\n              :class=\"`btn-${footerPrimaryButtonVariant}`\"\n              data-dismiss=\"modal\"\n              @click=\"emitSubmit($event)\"\n            >\n              {{ footerPrimaryButtonText }}\n            </button>\n          </slot>\n        </div>\n      </div>\n    </div>\n  </div>\n</template>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./gl_modal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./gl_modal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./gl_modal.vue?vue&type=template&id=35fa04ac\"\nimport script from \"./gl_modal.vue?vue&type=script&lang=js\"\nexport * from \"./gl_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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{class:_vm.containerClass,attrs:{\"type\":\"button\",\"disabled\":_vm.loading || _vm.disabled},on:{\"click\":_vm.onClick}},[_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.loading)?_c('loading-icon',{staticClass:\"js-loading-button-icon\",class:{\n        'append-right-5': _vm.label\n      },attrs:{\"inline\":true}}):_vm._e()],1),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"fade\"}},[_vm._t(\"default\",[(_vm.label)?_c('span',{staticClass:\"js-loading-button-label\"},[_vm._v(\"\\n        \"+_vm._s(_vm.label)+\"\\n      \")]):_vm._e()])],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./loading_button.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./loading_button.vue?vue&type=script&lang=js\"","<script>\n  /* eslint-disable vue/require-default-prop */\n  /* This is a re-usable vue component for rendering a button\n    that will probably be sending off ajax requests and need\n    to show the loading status by setting the `loading` option.\n    This can also be used for initial page load when you don't\n    know the action of the button yet by setting\n    `loading: true, label: undefined`.\n\n    Sample configuration:\n\n    <loading-button\n      :loading=\"true\"\n      :label=\"Hello\"\n      @click=\"...\"\n    />\n\n  */\n\n  import loadingIcon from './loading_icon.vue';\n\n  export default {\n    components: {\n      loadingIcon,\n    },\n    props: {\n      loading: {\n        type: Boolean,\n        required: false,\n        default: false,\n      },\n      disabled: {\n        type: Boolean,\n        required: false,\n        default: false,\n      },\n      label: {\n        type: String,\n        required: false,\n      },\n      containerClass: {\n        type: [String, Array, Object],\n        required: false,\n        default: 'btn btn-align-content',\n      },\n    },\n    methods: {\n      onClick(e) {\n        this.$emit('click', e);\n      },\n    },\n  };\n</script>\n\n<template>\n  <button\n    @click=\"onClick\"\n    type=\"button\"\n    :class=\"containerClass\"\n    :disabled=\"loading || disabled\"\n  >\n    <transition name=\"fade\">\n      <loading-icon\n        v-if=\"loading\"\n        :inline=\"true\"\n        class=\"js-loading-button-icon\"\n        :class=\"{\n          'append-right-5': label\n        }\"\n      />\n    </transition>\n    <transition name=\"fade\">\n      <slot>\n        <span\n          v-if=\"label\"\n          class=\"js-loading-button-label\"\n        >\n          {{ label }}\n        </span>\n      </slot>\n    </transition>\n  </button>\n</template>\n","import { render, staticRenderFns } from \"./loading_button.vue?vue&type=template&id=11c1ced7\"\nimport script from \"./loading_button.vue?vue&type=script&lang=js\"\nexport * from \"./loading_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","export const CANCEL_REQUEST = 'CANCEL_REQUEST';\nexport const PIPELINES_TABLE = 'PIPELINES_TABLE';\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"ci-job-name-component\"},[_c('ci-icon',{attrs:{\"status\":_vm.status}}),_vm._v(\" \"),_c('span',{staticClass:\"ci-status-text\"},[_vm._v(\"\\n    \"+_vm._s(_vm.name)+\"\\n  \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../../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/babel-loader/lib/index.js??ref--0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./job_name_component.vue?vue&type=script&lang=js\"","<script>\n  import ciIcon from '../../../vue_shared/components/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   */\n  export default {\n    components: {\n      ciIcon,\n    },\n    props: {\n      name: {\n        type: String,\n        required: true,\n      },\n\n      status: {\n        type: Object,\n        required: true,\n      },\n    },\n  };\n</script>\n<template>\n  <span class=\"ci-job-name-component\">\n    <ci-icon :status=\"status\" />\n\n    <span class=\"ci-status-text\">\n      {{ name }}\n    </span>\n  </span>\n</template>\n","import { render, staticRenderFns } from \"./job_name_component.vue?vue&type=template&id=a4bb600e\"\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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ci-job-component\"},[(_vm.status.has_details)?_c('a',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],staticClass:\"js-pipeline-graph-job-link\",class:_vm.cssClassJobName,attrs:{\"href\":_vm.status.details_path,\"title\":_vm.tooltipText,\"data-container\":\"body\",\"data-html\":\"true\",\"data-boundary\":\"viewport\"}},[_c('job-name-component',{attrs:{\"name\":_vm.job.name,\"status\":_vm.job.status}})],1):_c('div',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],staticClass:\"js-job-component-tooltip non-details-job-component\",class:_vm.cssClassJobName,attrs:{\"title\":_vm.tooltipText,\"data-html\":\"true\",\"data-container\":\"body\"}},[_c('job-name-component',{attrs:{\"name\":_vm.job.name,\"status\":_vm.job.status}})],1),_vm._v(\" \"),(_vm.hasAction)?_c('action-component',{attrs:{\"tooltip-text\":_vm.status.action.title,\"link\":_vm.status.action.path,\"action-icon\":_vm.status.action.icon},on:{\"pipelineActionRequestComplete\":_vm.pipelineActionRequestComplete}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./action_component.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./action_component.vue?vue&type=script&lang=js\"","<script>\nimport $ from 'jquery';\nimport axios from '~/lib/utils/axios_utils';\nimport { dasherize } from '~/lib/utils/text_utility';\nimport { __ } from '~/locale';\nimport createFlash from '~/flash';\nimport tooltip from '~/vue_shared/directives/tooltip';\nimport Icon from '~/vue_shared/components/icon.vue';\n\n/**\n * Renders either a cancel, retry or play icon button and handles the post request\n *\n * Used in:\n * - mr widget mini pipeline graph: `mr_widget_pipeline.vue`\n * - pipelines table\n * - pipelines table in merge request page\n * - pipelines table in commit page\n * - pipelines detail page in big graph\n */\nexport default {\n  components: {\n    Icon,\n  },\n\n  directives: {\n    tooltip,\n  },\n\n  props: {\n    tooltipText: {\n      type: String,\n      required: true,\n    },\n\n    link: {\n      type: String,\n      required: true,\n    },\n\n    actionIcon: {\n      type: String,\n      required: true,\n    },\n\n  },\n  data() {\n    return {\n      isDisabled: false,\n    };\n  },\n\n  computed: {\n    cssClass() {\n      const actionIconDash = dasherize(this.actionIcon);\n      return `${actionIconDash} js-icon-${actionIconDash}`;\n    },\n  },\n  methods: {\n    /**\n     * The request should not be handled here.\n     * However due to this component being used in several\n     * different apps it avoids repetition & complexity.\n     *\n     */\n    onClickAction() {\n      $(this.$el).tooltip('hide');\n\n      this.isDisabled = true;\n\n      axios.post(`${this.link}.json`)\n        .then(() => {\n          this.isDisabled = false;\n          this.$emit('pipelineActionRequestComplete');\n        })\n        .catch(() => {\n          this.isDisabled = false;\n\n          createFlash(__('An error occurred while making the request.'));\n        });\n    },\n  },\n};\n</script>\n<template>\n  <button\n    type=\"button\"\n    @click=\"onClickAction\"\n    v-tooltip\n    :title=\"tooltipText\"\n    class=\"js-ci-action btn btn-blank\nbtn-transparent ci-action-icon-container ci-action-icon-wrapper\"\n    :class=\"cssClass\"\n    data-container=\"body\"\n    :disabled=\"isDisabled\"\n    data-boundary=\"viewport\"\n  >\n    <icon :name=\"actionIcon\"/>\n  </button>\n</template>\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./job_component.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./job_component.vue?vue&type=script&lang=js\"","<script>\nimport ActionComponent from './action_component.vue';\nimport JobNameComponent from './job_name_component.vue';\nimport tooltip from '../../../vue_shared/directives/tooltip';\n\n/**\n * Renders the badge for the pipeline graph and the job's dropdown.\n *\n * The following object should be provided as `job`:\n *\n * {\n *   \"id\": 4256,\n *   \"name\": \"test\",\n *   \"status\": {\n *     \"icon\": \"icon_status_success\",\n *     \"text\": \"passed\",\n *     \"label\": \"passed\",\n *     \"group\": \"success\",\n *     \"tooltip\": \"passed\",\n *     \"details_path\": \"/root/ci-mock/builds/4256\",\n *     \"action\": {\n *       \"icon\": \"retry\",\n *       \"title\": \"Retry\",\n *       \"path\": \"/root/ci-mock/builds/4256/retry\",\n *       \"method\": \"post\"\n *     }\n *   }\n * }\n */\n\nexport default {\n  components: {\n    ActionComponent,\n    JobNameComponent,\n  },\n  directives: {\n    tooltip,\n  },\n  props: {\n    job: {\n      type: Object,\n      required: true,\n    },\n    cssClassJobName: {\n      type: String,\n      required: false,\n      default: '',\n    },\n  },\n  computed: {\n    status() {\n      return this.job && this.job.status ? this.job.status : {};\n    },\n\n    tooltipText() {\n      const textBuilder = [];\n\n      if (this.job.name) {\n        textBuilder.push(this.job.name);\n      }\n\n      if (this.job.name && this.status.tooltip) {\n        textBuilder.push('-');\n      }\n\n      if (this.status.tooltip) {\n        textBuilder.push(`${this.job.status.tooltip}`);\n      }\n\n      return textBuilder.join(' ');\n    },\n\n    /**\n     * Verifies if the provided job has an action path\n     *\n     * @return {Boolean}\n     */\n    hasAction() {\n      return this.job.status && this.job.status.action && this.job.status.action.path;\n    },\n  },\n  methods: {\n    pipelineActionRequestComplete() {\n      this.$emit('pipelineActionRequestComplete');\n    },\n  },\n};\n</script>\n<template>\n  <div class=\"ci-job-component\">\n    <a\n      v-tooltip\n      v-if=\"status.has_details\"\n      :href=\"status.details_path\"\n      :title=\"tooltipText\"\n      :class=\"cssClassJobName\"\n      data-container=\"body\"\n      data-html=\"true\"\n      data-boundary=\"viewport\"\n      class=\"js-pipeline-graph-job-link\"\n    >\n\n      <job-name-component\n        :name=\"job.name\"\n        :status=\"job.status\"\n      />\n    </a>\n\n    <div\n      v-else\n      v-tooltip\n      class=\"js-job-component-tooltip non-details-job-component\"\n      :title=\"tooltipText\"\n      :class=\"cssClassJobName\"\n      data-html=\"true\"\n      data-container=\"body\"\n    >\n\n      <job-name-component\n        :name=\"job.name\"\n        :status=\"job.status\"\n      />\n    </div>\n\n    <action-component\n      v-if=\"hasAction\"\n      :tooltip-text=\"status.action.title\"\n      :link=\"status.action.path\"\n      :action-icon=\"status.action.icon\"\n      @pipelineActionRequestComplete=\"pipelineActionRequestComplete\"\n    />\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./action_component.vue?vue&type=template&id=62706632\"\nimport script from \"./action_component.vue?vue&type=script&lang=js\"\nexport * from \"./action_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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],staticClass:\"js-ci-action btn btn-blank\\nbtn-transparent ci-action-icon-container ci-action-icon-wrapper\",class:_vm.cssClass,attrs:{\"type\":\"button\",\"title\":_vm.tooltipText,\"data-container\":\"body\",\"disabled\":_vm.isDisabled,\"data-boundary\":\"viewport\"},on:{\"click\":_vm.onClickAction}},[_c('icon',{attrs:{\"name\":_vm.actionIcon}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./job_component.vue?vue&type=template&id=37d9acc6\"\nimport script from \"./job_component.vue?vue&type=script&lang=js\"\nexport * from \"./job_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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"branch-commit\"},[(_vm.hasCommitRef && _vm.showBranch)?[_c('div',{staticClass:\"icon-container\"},[(_vm.tag)?_c('i',{staticClass:\"fa fa-tag\",attrs:{\"aria-hidden\":\"true\"}}):_vm._e(),_vm._v(\" \"),(!_vm.tag)?_c('icon',{attrs:{\"name\":\"fork\"}}):_vm._e()],1),_vm._v(\" \"),_c('a',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],staticClass:\"ref-name\",attrs:{\"href\":_vm.commitRef.ref_url,\"data-container\":\"body\",\"title\":_vm.commitRef.name}},[_vm._v(\"\\n      \"+_vm._s(_vm.commitRef.name)+\"\\n    \")])]:_vm._e(),_vm._v(\" \"),_c('icon',{staticClass:\"commit-icon js-commit-icon\",attrs:{\"name\":\"commit\"}}),_vm._v(\" \"),_c('a',{staticClass:\"commit-sha\",attrs:{\"href\":_vm.commitUrl}},[_vm._v(\"\\n    \"+_vm._s(_vm.shortSha)+\"\\n  \")]),_vm._v(\" \"),_c('div',{staticClass:\"commit-title flex-truncate-parent\"},[(_vm.title)?_c('span',{staticClass:\"flex-truncate-child\"},[(_vm.hasAuthor)?_c('user-avatar-link',{staticClass:\"avatar-image-container\",attrs:{\"link-href\":_vm.author.path,\"img-src\":_vm.author.avatar_url,\"img-alt\":_vm.userImageAltDescription,\"tooltip-text\":_vm.author.username}}):_vm._e(),_vm._v(\" \"),_c('a',{staticClass:\"commit-row-message\",attrs:{\"href\":_vm.commitUrl}},[_vm._v(\"\\n        \"+_vm._s(_vm.title)+\"\\n      \")])],1):_c('span',[_vm._v(\"\\n      Can't find HEAD commit for this branch\\n    \")])])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./commit.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./commit.vue?vue&type=script&lang=js\"","<script>\nimport UserAvatarLink from './user_avatar/user_avatar_link.vue';\nimport tooltip from '../directives/tooltip';\nimport Icon from '../../vue_shared/components/icon.vue';\n\nexport default {\n  directives: {\n    tooltip,\n  },\n  components: {\n    UserAvatarLink,\n    Icon,\n  },\n  props: {\n    /**\n     * Indicates the existance of a tag.\n     * Used to render the correct icon, if true will render `fa-tag` icon,\n     * if false will render a svg sprite fork icon\n     */\n    tag: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n    /**\n     * If provided is used to render the branch name and url.\n     * Should contain the following properties:\n     * name\n     * ref_url\n     */\n    commitRef: {\n      type: Object,\n      required: false,\n      default: () => ({}),\n    },\n    /**\n     * Used to link to the commit sha.\n     */\n    commitUrl: {\n      type: String,\n      required: false,\n      default: '',\n    },\n\n    /**\n     * Used to show the commit short sha that links to the commit url.\n     */\n    shortSha: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    /**\n     * If provided shows the commit tile.\n     */\n    title: {\n      type: String,\n      required: false,\n      default: '',\n    },\n    /**\n     * If provided renders information about the author of the commit.\n     * When provided should include:\n     * `avatar_url` to render the avatar icon\n     * `web_url` to link to user profile\n     * `username` to render alt and title tags\n     */\n    author: {\n      type: Object,\n      required: false,\n      default: () => ({}),\n    },\n    showBranch: {\n      type: Boolean,\n      required: false,\n      default: true,\n    },\n  },\n  computed: {\n    /**\n     * Used to verify if all the properties needed to render the commit\n     * ref section were provided.\n     *\n     * @returns {Boolean}\n     */\n    hasCommitRef() {\n      return this.commitRef && this.commitRef.name && this.commitRef.ref_url;\n    },\n    /**\n     * Used to verify if all the properties needed to render the commit\n     * author section were provided.\n     *\n     * @returns {Boolean}\n     */\n    hasAuthor() {\n      return this.author && this.author.avatar_url && this.author.path && this.author.username;\n    },\n    /**\n     * If information about the author is provided will return a string\n     * to be rendered as the alt attribute of the img tag.\n     *\n     * @returns {String}\n     */\n    userImageAltDescription() {\n      return this.author && this.author.username ? `${this.author.username}'s avatar` : null;\n    },\n  },\n};\n</script>\n<template>\n  <div class=\"branch-commit\">\n    <template v-if=\"hasCommitRef && showBranch\">\n      <div class=\"icon-container\">\n        <i\n          v-if=\"tag\"\n          class=\"fa fa-tag\"\n          aria-hidden=\"true\"\n        >\n        </i>\n        <icon\n          v-if=\"!tag\"\n          name=\"fork\"\n        />\n      </div>\n\n      <a\n        class=\"ref-name\"\n        :href=\"commitRef.ref_url\"\n        v-tooltip\n        data-container=\"body\"\n        :title=\"commitRef.name\"\n      >\n        {{ commitRef.name }}\n      </a>\n    </template>\n    <icon\n      name=\"commit\"\n      class=\"commit-icon js-commit-icon\"\n    />\n\n    <a\n      class=\"commit-sha\"\n      :href=\"commitUrl\"\n    >\n      {{ shortSha }}\n    </a>\n\n    <div class=\"commit-title flex-truncate-parent\">\n      <span\n        v-if=\"title\"\n        class=\"flex-truncate-child\"\n      >\n        <user-avatar-link\n          v-if=\"hasAuthor\"\n          class=\"avatar-image-container\"\n          :link-href=\"author.path\"\n          :img-src=\"author.avatar_url\"\n          :img-alt=\"userImageAltDescription\"\n          :tooltip-text=\"author.username\"\n        />\n        <a\n          class=\"commit-row-message\"\n          :href=\"commitUrl\"\n        >\n          {{ title }}\n        </a>\n      </span>\n      <span v-else>\n        Can't find HEAD commit for this branch\n      </span>\n    </div>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./commit.vue?vue&type=template&id=669fa1a9\"\nimport script from \"./commit.vue?vue&type=script&lang=js\"\nexport * from \"./commit.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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row empty-state js-empty-state\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"svg-content svg-250\"},[_c('img',{attrs:{\"src\":_vm.emptyStateSvgPath}})])]),_vm._v(\" \"),_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"text-content\"},[(_vm.canSetCi)?[_c('h4',{staticClass:\"text-center\"},[_vm._v(\"\\n          \"+_vm._s(_vm.s__('Pipelines|Build with confidence'))+\"\\n        \")]),_vm._v(\" \"),_c('p',[_vm._v(\"\\n          \"+_vm._s(_vm.s__(\"Pipelines|Continuous Integration can help\\n              catch bugs by running your tests automatically,\\n              while Continuous Deployment can help you deliver\\n              code to your product environment.\"))+\"\\n        \")]),_vm._v(\" \"),_c('div',{staticClass:\"text-center\"},[_c('a',{staticClass:\"btn btn-primary js-get-started-pipelines\",attrs:{\"href\":_vm.helpPagePath}},[_vm._v(\"\\n            \"+_vm._s(_vm.s__('Pipelines|Get started with Pipelines'))+\"\\n          \")])])]:_c('p',{staticClass:\"text-center\"},[_vm._v(\"\\n        \"+_vm._s(_vm.s__('Pipelines|This project is not currently set up to run pipelines.'))+\"\\n      \")])],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./empty_state.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./empty_state.vue?vue&type=script&lang=js\"","<script>\n  export default {\n    name: 'PipelinesEmptyState',\n    props: {\n      helpPagePath: {\n        type: String,\n        required: true,\n      },\n      emptyStateSvgPath: {\n        type: String,\n        required: true,\n      },\n      canSetCi: {\n        type: Boolean,\n        required: true,\n      },\n    },\n  };\n</script>\n<template>\n  <div class=\"row empty-state js-empty-state\">\n    <div class=\"col-12\">\n      <div class=\"svg-content svg-250\">\n        <img :src=\"emptyStateSvgPath\" />\n      </div>\n    </div>\n\n    <div class=\"col-12\">\n      <div class=\"text-content\">\n\n        <template v-if=\"canSetCi\">\n          <h4 class=\"text-center\">\n            {{ s__('Pipelines|Build with confidence') }}\n          </h4>\n\n          <p>\n            {{ s__(`Pipelines|Continuous Integration can help\n                catch bugs by running your tests automatically,\n                while Continuous Deployment can help you deliver\n                code to your product environment.`) }}\n          </p>\n\n          <div class=\"text-center\">\n            <a\n              :href=\"helpPagePath\"\n              class=\"btn btn-primary js-get-started-pipelines\"\n            >\n              {{ s__('Pipelines|Get started with Pipelines') }}\n            </a>\n          </div>\n        </template>\n\n        <p\n          v-else\n          class=\"text-center\"\n        >\n          {{ s__('Pipelines|This project is not currently set up to run pipelines.') }}\n        </p>\n\n      </div>\n    </div>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./empty_state.vue?vue&type=template&id=0c115f70\"\nimport script from \"./empty_state.vue?vue&type=script&lang=js\"\nexport * from \"./empty_state.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 $ from 'jquery';\n\n/**\n * Helper to user bootstrap popover in vue.js.\n * Follow docs for html attributes: https://getbootstrap.com/docs/3.3/javascript/#static-popover\n *\n * @example\n * import popover from 'vue_shared/directives/popover.js';\n * {\n *   directives: [popover]\n * }\n * <a v-popover=\"{options}\">popover</a>\n */\nexport default {\n  bind(el, binding) {\n    $(el).popover(binding.value);\n  },\n\n  unbind(el) {\n    $(el).popover('dispose');\n  },\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"dropdown\"},[_c('button',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],ref:\"dropdown\",staticClass:\"mini-pipeline-graph-dropdown-toggle js-builds-dropdown-button\",class:_vm.triggerButtonClass,attrs:{\"title\":_vm.stage.title,\"data-placement\":\"top\",\"data-toggle\":\"dropdown\",\"data-display\":\"static\",\"type\":\"button\",\"id\":\"stageDropdown\",\"aria-haspopup\":\"true\",\"aria-expanded\":\"false\"},on:{\"click\":_vm.onClickStage}},[_c('span',{attrs:{\"aria-hidden\":\"true\",\"aria-label\":_vm.stage.title}},[_c('icon',{attrs:{\"name\":_vm.borderlessIcon}})],1),_vm._v(\" \"),_c('i',{staticClass:\"fa fa-caret-down\",attrs:{\"aria-hidden\":\"true\"}})]),_vm._v(\" \"),_c('ul',{staticClass:\"dropdown-menu mini-pipeline-graph-dropdown-menu js-builds-dropdown-container\",attrs:{\"aria-labelledby\":\"stageDropdown\"}},[_c('li',{staticClass:\"js-builds-dropdown-list scrollable-menu\"},[(_vm.isLoading)?_c('loading-icon'):_c('ul',_vm._l((_vm.dropdownContent),function(job){return _c('li',{key:job.id},[_c('job-component',{attrs:{\"job\":job,\"css-class-job-name\":\"mini-pipeline-graph-dropdown-item\"},on:{\"pipelineActionRequestComplete\":_vm.pipelineActionRequestComplete}})],1)}))],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./stage.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./stage.vue?vue&type=script&lang=js\"","<script>\n/**\n * Renders each stage of the pipeline mini graph.\n *\n * Given the provided endpoint will make a request to\n * fetch the dropdown data when the stage is clicked.\n *\n * Request is made inside this component to make it reusable between:\n * 1. Pipelines main table\n * 2. Pipelines table in commit and Merge request views\n * 3. Merge request widget\n * 4. Commit widget\n */\n\nimport $ from 'jquery';\nimport { __ } from '../../locale';\nimport Flash from '../../flash';\nimport axios from '../../lib/utils/axios_utils';\nimport eventHub from '../event_hub';\nimport Icon from '../../vue_shared/components/icon.vue';\nimport LoadingIcon from '../../vue_shared/components/loading_icon.vue';\nimport JobComponent from './graph/job_component.vue';\nimport tooltip from '../../vue_shared/directives/tooltip';\nimport { PIPELINES_TABLE } from '../constants';\n\nexport default {\n  components: {\n    LoadingIcon,\n    Icon,\n    JobComponent,\n  },\n\n  directives: {\n    tooltip,\n  },\n\n  props: {\n    stage: {\n      type: Object,\n      required: true,\n    },\n\n    updateDropdown: {\n      type: Boolean,\n      required: false,\n      default: false,\n    },\n\n    type: {\n      type: String,\n      required: false,\n      default: '',\n    },\n  },\n\n  data() {\n    return {\n      isLoading: false,\n      dropdownContent: '',\n    };\n  },\n\n  computed: {\n    dropdownClass() {\n      return this.dropdownContent.length > 0\n        ? 'js-builds-dropdown-container'\n        : 'js-builds-dropdown-loading';\n    },\n\n    triggerButtonClass() {\n      return `ci-status-icon-${this.stage.status.group}`;\n    },\n\n    borderlessIcon() {\n      return `${this.stage.status.icon}_borderless`;\n    },\n  },\n\n  watch: {\n    updateDropdown() {\n      if (this.updateDropdown && this.isDropdownOpen() && !this.isLoading) {\n        this.fetchJobs();\n      }\n    },\n  },\n\n  updated() {\n    if (this.dropdownContent.length > 0) {\n      this.stopDropdownClickPropagation();\n    }\n  },\n\n  methods: {\n    onClickStage() {\n      if (!this.isDropdownOpen()) {\n        eventHub.$emit('clickedDropdown');\n        this.isLoading = true;\n        this.fetchJobs();\n      }\n    },\n\n    fetchJobs() {\n      axios\n        .get(this.stage.dropdown_path)\n        .then(({ data }) => {\n          this.dropdownContent = data.latest_statuses;\n          this.isLoading = false;\n        })\n        .catch(() => {\n          this.closeDropdown();\n          this.isLoading = false;\n\n          Flash(__('Something went wrong on our end.'));\n        });\n    },\n\n    /**\n     * When the user right clicks or cmd/ctrl + click in the job name\n     * the dropdown should not be closed and the link should open in another tab,\n     * so we stop propagation of the click event inside the dropdown.\n     *\n     * Since this component is rendered multiple times per page we need to guarantee we only\n     * target the click event of this component.\n     */\n    stopDropdownClickPropagation() {\n      $(\n        '.js-builds-dropdown-list button, .js-builds-dropdown-list a.mini-pipeline-graph-dropdown-item',\n        this.$el,\n      ).on('click', e => {\n        e.stopPropagation();\n      });\n    },\n\n    closeDropdown() {\n      if (this.isDropdownOpen()) {\n        $(this.$refs.dropdown).dropdown('toggle');\n      }\n    },\n\n    isDropdownOpen() {\n      return this.$el.classList.contains('open');\n    },\n\n    pipelineActionRequestComplete() {\n      if (this.type === PIPELINES_TABLE) {\n        // warn the table to update\n        eventHub.$emit('refreshPipelinesTable');\n      } else {\n        // close the dropdown in mr widget\n        $(this.$refs.dropdown).dropdown('toggle');\n      }\n    },\n  },\n};\n</script>\n\n<template>\n  <div class=\"dropdown\">\n    <button\n      v-tooltip\n      :class=\"triggerButtonClass\"\n      @click=\"onClickStage\"\n      class=\"mini-pipeline-graph-dropdown-toggle js-builds-dropdown-button\"\n      :title=\"stage.title\"\n      data-placement=\"top\"\n      data-toggle=\"dropdown\"\n      data-display=\"static\"\n      type=\"button\"\n      id=\"stageDropdown\"\n      aria-haspopup=\"true\"\n      aria-expanded=\"false\"\n      ref=\"dropdown\"\n    >\n\n      <span\n        aria-hidden=\"true\"\n        :aria-label=\"stage.title\"\n      >\n        <icon :name=\"borderlessIcon\" />\n      </span>\n\n      <i\n        class=\"fa fa-caret-down\"\n        aria-hidden=\"true\"\n      >\n      </i>\n    </button>\n\n    <ul\n      class=\"dropdown-menu mini-pipeline-graph-dropdown-menu js-builds-dropdown-container\"\n      aria-labelledby=\"stageDropdown\"\n    >\n\n      <li\n        class=\"js-builds-dropdown-list scrollable-menu\"\n      >\n\n        <loading-icon v-if=\"isLoading\"/>\n\n        <ul\n          v-else\n        >\n          <li\n            v-for=\"job in dropdownContent\"\n            :key=\"job.id\"\n          >\n            <job-component\n              :job=\"job\"\n              css-class-job-name=\"mini-pipeline-graph-dropdown-item\"\n              @pipelineActionRequestComplete=\"pipelineActionRequestComplete\"\n            />\n          </li>\n        </ul>\n      </li>\n    </ul>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./stage.vue?vue&type=template&id=1bce706c\"\nimport script from \"./stage.vue?vue&type=script&lang=js\"\nexport * from \"./stage.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/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./blank_state.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./blank_state.vue?vue&type=script&lang=js\"","<script>\n  export default {\n    name: 'PipelinesSvgState',\n    props: {\n      svgPath: {\n        type: String,\n        required: true,\n      },\n\n      message: {\n        type: String,\n        required: true,\n      },\n    },\n  };\n</script>\n\n<template>\n  <div class=\"row empty-state\">\n    <div class=\"col-12\">\n      <div class=\"svg-content\">\n        <img :src=\"svgPath\" />\n      </div>\n    </div>\n\n    <div class=\"col-12 text-center\">\n      <div class=\"text-content\">\n        <h4>{{ message }}</h4>\n      </div>\n    </div>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./blank_state.vue?vue&type=template&id=5cd44337\"\nimport script from \"./blank_state.vue?vue&type=script&lang=js\"\nexport * from \"./blank_state.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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row empty-state\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"svg-content\"},[_c('img',{attrs:{\"src\":_vm.svgPath}})])]),_vm._v(\" \"),_c('div',{staticClass:\"col-12 text-center\"},[_c('div',{staticClass:\"text-content\"},[_c('h4',[_vm._v(_vm._s(_vm.message))])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pipelines_actions.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pipelines_actions.vue?vue&type=script&lang=js\"","<script>\n  import eventHub from '../event_hub';\n  import loadingIcon from '../../vue_shared/components/loading_icon.vue';\n  import icon from '../../vue_shared/components/icon.vue';\n  import tooltip from '../../vue_shared/directives/tooltip';\n\n  export default {\n    directives: {\n      tooltip,\n    },\n    components: {\n      loadingIcon,\n      icon,\n    },\n    props: {\n      actions: {\n        type: Array,\n        required: true,\n      },\n    },\n    data() {\n      return {\n        isLoading: false,\n      };\n    },\n    methods: {\n      onClickAction(endpoint) {\n        this.isLoading = true;\n\n        eventHub.$emit('postAction', endpoint);\n      },\n\n      isActionDisabled(action) {\n        if (action.playable === undefined) {\n          return false;\n        }\n\n        return !action.playable;\n      },\n    },\n  };\n</script>\n<template>\n  <div class=\"btn-group\">\n    <button\n      v-tooltip\n      type=\"button\"\n      class=\"dropdown-new btn btn-default js-pipeline-dropdown-manual-actions\"\n      title=\"Manual job\"\n      data-toggle=\"dropdown\"\n      data-placement=\"top\"\n      aria-label=\"Manual job\"\n      :disabled=\"isLoading\"\n    >\n      <icon\n        name=\"play\"\n        class=\"icon-play\"\n      />\n      <i\n        class=\"fa fa-caret-down\"\n        aria-hidden=\"true\">\n      </i>\n      <loading-icon v-if=\"isLoading\" />\n    </button>\n\n    <ul class=\"dropdown-menu dropdown-menu-right\">\n      <li\n        v-for=\"(action, i) in actions\"\n        :key=\"i\"\n      >\n        <button\n          type=\"button\"\n          class=\"js-pipeline-action-link no-btn btn\"\n          @click=\"onClickAction(action.path)\"\n          :class=\"{ disabled: isActionDisabled(action) }\"\n          :disabled=\"isActionDisabled(action)\"\n        >\n          {{ action.name }}\n        </button>\n      </li>\n    </ul>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./pipelines_actions.vue?vue&type=template&id=2adcf8d5\"\nimport script from \"./pipelines_actions.vue?vue&type=script&lang=js\"\nexport * from \"./pipelines_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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"btn-group\"},[_c('button',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],staticClass:\"dropdown-new btn btn-default js-pipeline-dropdown-manual-actions\",attrs:{\"type\":\"button\",\"title\":\"Manual job\",\"data-toggle\":\"dropdown\",\"data-placement\":\"top\",\"aria-label\":\"Manual job\",\"disabled\":_vm.isLoading}},[_c('icon',{staticClass:\"icon-play\",attrs:{\"name\":\"play\"}}),_vm._v(\" \"),_c('i',{staticClass:\"fa fa-caret-down\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),(_vm.isLoading)?_c('loading-icon'):_vm._e()],1),_vm._v(\" \"),_c('ul',{staticClass:\"dropdown-menu dropdown-menu-right\"},_vm._l((_vm.actions),function(action,i){return _c('li',{key:i},[_c('button',{staticClass:\"js-pipeline-action-link no-btn btn\",class:{ disabled: _vm.isActionDisabled(action) },attrs:{\"type\":\"button\",\"disabled\":_vm.isActionDisabled(action)},on:{\"click\":function($event){_vm.onClickAction(action.path)}}},[_vm._v(\"\\n        \"+_vm._s(action.name)+\"\\n      \")])])}))])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pipelines_artifacts.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pipelines_artifacts.vue?vue&type=script&lang=js\"","<script>\n  import tooltip from '../../vue_shared/directives/tooltip';\n  import icon from '../../vue_shared/components/icon.vue';\n\n  export default {\n    directives: {\n      tooltip,\n    },\n    components: {\n      icon,\n    },\n    props: {\n      artifacts: {\n        type: Array,\n        required: true,\n      },\n    },\n  };\n</script>\n<template>\n  <div\n    class=\"btn-group\"\n    role=\"group\"\n  >\n    <button\n      v-tooltip\n      class=\"dropdown-toggle btn btn-default build-artifacts js-pipeline-dropdown-download\"\n      title=\"Artifacts\"\n      data-placement=\"top\"\n      data-toggle=\"dropdown\"\n      aria-label=\"Artifacts\"\n    >\n      <icon name=\"download\" />\n      <i\n        class=\"fa fa-caret-down\"\n        aria-hidden=\"true\"\n      >\n      </i>\n    </button>\n    <ul class=\"dropdown-menu dropdown-menu-right\">\n      <li\n        v-for=\"(artifact, i) in artifacts\"\n        :key=\"i\">\n        <a\n          rel=\"nofollow\"\n          download\n          :href=\"artifact.path\"\n        >\n          Download {{ artifact.name }} artifacts\n        </a>\n      </li>\n    </ul>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./pipelines_artifacts.vue?vue&type=template&id=cba28896\"\nimport script from \"./pipelines_artifacts.vue?vue&type=script&lang=js\"\nexport * from \"./pipelines_artifacts.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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"btn-group\",attrs:{\"role\":\"group\"}},[_c('button',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],staticClass:\"dropdown-toggle btn btn-default build-artifacts js-pipeline-dropdown-download\",attrs:{\"title\":\"Artifacts\",\"data-placement\":\"top\",\"data-toggle\":\"dropdown\",\"aria-label\":\"Artifacts\"}},[_c('icon',{attrs:{\"name\":\"download\"}}),_vm._v(\" \"),_c('i',{staticClass:\"fa fa-caret-down\",attrs:{\"aria-hidden\":\"true\"}})],1),_vm._v(\" \"),_c('ul',{staticClass:\"dropdown-menu dropdown-menu-right\"},_vm._l((_vm.artifacts),function(artifact,i){return _c('li',{key:i},[_c('a',{attrs:{\"rel\":\"nofollow\",\"download\":\"\",\"href\":artifact.path}},[_vm._v(\"\\n        Download \"+_vm._s(artifact.name)+\" artifacts\\n      \")])])}))])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../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/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pipeline_url.vue?vue&type=script&lang=js\"","<script>\n  import userAvatarLink from '../../vue_shared/components/user_avatar/user_avatar_link.vue';\n  import tooltip from '../../vue_shared/directives/tooltip';\n  import popover from '../../vue_shared/directives/popover';\n\n  export default {\n    components: {\n      userAvatarLink,\n    },\n    directives: {\n      tooltip,\n      popover,\n    },\n    props: {\n      pipeline: {\n        type: Object,\n        required: true,\n      },\n      autoDevopsHelpPath: {\n        type: String,\n        required: true,\n      },\n    },\n    computed: {\n      user() {\n        return this.pipeline.user;\n      },\n      popoverOptions() {\n        return {\n          html: true,\n          trigger: 'focus',\n          placement: 'top',\n          title: `<div class=\"autodevops-title\">\n            This pipeline makes use of a predefined CI/CD configuration enabled by <b>Auto DevOps.</b>\n          </div>`,\n          content: `<a\n            class=\"autodevops-link\"\n            href=\"${this.autoDevopsHelpPath}\"\n            target=\"_blank\"\n            rel=\"noopener noreferrer nofollow\">\n            Learn more about Auto DevOps\n          </a>`,\n        };\n      },\n    },\n  };\n</script>\n<template>\n  <div class=\"table-section section-15 d-none d-sm-none d-md-block pipeline-tags\">\n    <a\n      :href=\"pipeline.path\"\n      class=\"js-pipeline-url-link\">\n      <span class=\"pipeline-id\">#{{ pipeline.id }}</span>\n    </a>\n    <span>by</span>\n    <user-avatar-link\n      v-if=\"user\"\n      class=\"js-pipeline-url-user\"\n      :link-href=\"pipeline.user.path\"\n      :img-src=\"pipeline.user.avatar_url\"\n      :tooltip-text=\"pipeline.user.name\"\n    />\n    <span\n      v-if=\"!user\"\n      class=\"js-pipeline-url-api api\">\n      API\n    </span>\n    <div class=\"label-container\">\n      <span\n        v-if=\"pipeline.flags.latest\"\n        v-tooltip\n        class=\"js-pipeline-url-latest badge badge-success\"\n        title=\"Latest pipeline for this branch\">\n        latest\n      </span>\n      <span\n        v-if=\"pipeline.flags.yaml_errors\"\n        v-tooltip\n        class=\"js-pipeline-url-yaml badge badge-danger\"\n        :title=\"pipeline.yaml_errors\">\n        yaml invalid\n      </span>\n      <span\n        v-if=\"pipeline.flags.failure_reason\"\n        v-tooltip\n        class=\"js-pipeline-url-failure badge badge-danger\"\n        :title=\"pipeline.failure_reason\">\n        error\n      </span>\n      <a\n        v-if=\"pipeline.flags.auto_devops\"\n        tabindex=\"0\"\n        class=\"js-pipeline-url-autodevops badge badge-info autodevops-badge\"\n        v-popover=\"popoverOptions\"\n        role=\"button\">\n        Auto DevOps\n      </a>\n      <span\n        v-if=\"pipeline.flags.stuck\"\n        class=\"js-pipeline-url-stuck badge badge-warning\">\n        stuck\n      </span>\n    </div>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./pipeline_url.vue?vue&type=template&id=240713d0\"\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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"table-section section-15 d-none d-sm-none d-md-block pipeline-tags\"},[_c('a',{staticClass:\"js-pipeline-url-link\",attrs:{\"href\":_vm.pipeline.path}},[_c('span',{staticClass:\"pipeline-id\"},[_vm._v(\"#\"+_vm._s(_vm.pipeline.id))])]),_vm._v(\" \"),_c('span',[_vm._v(\"by\")]),_vm._v(\" \"),(_vm.user)?_c('user-avatar-link',{staticClass:\"js-pipeline-url-user\",attrs:{\"link-href\":_vm.pipeline.user.path,\"img-src\":_vm.pipeline.user.avatar_url,\"tooltip-text\":_vm.pipeline.user.name}}):_vm._e(),_vm._v(\" \"),(!_vm.user)?_c('span',{staticClass:\"js-pipeline-url-api api\"},[_vm._v(\"\\n    API\\n  \")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"label-container\"},[(_vm.pipeline.flags.latest)?_c('span',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],staticClass:\"js-pipeline-url-latest badge badge-success\",attrs:{\"title\":\"Latest pipeline for this branch\"}},[_vm._v(\"\\n      latest\\n    \")]):_vm._e(),_vm._v(\" \"),(_vm.pipeline.flags.yaml_errors)?_c('span',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],staticClass:\"js-pipeline-url-yaml badge badge-danger\",attrs:{\"title\":_vm.pipeline.yaml_errors}},[_vm._v(\"\\n      yaml invalid\\n    \")]):_vm._e(),_vm._v(\" \"),(_vm.pipeline.flags.failure_reason)?_c('span',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],staticClass:\"js-pipeline-url-failure badge badge-danger\",attrs:{\"title\":_vm.pipeline.failure_reason}},[_vm._v(\"\\n      error\\n    \")]):_vm._e(),_vm._v(\" \"),(_vm.pipeline.flags.auto_devops)?_c('a',{directives:[{name:\"popover\",rawName:\"v-popover\",value:(_vm.popoverOptions),expression:\"popoverOptions\"}],staticClass:\"js-pipeline-url-autodevops badge badge-info autodevops-badge\",attrs:{\"tabindex\":\"0\",\"role\":\"button\"}},[_vm._v(\"\\n      Auto DevOps\\n    \")]):_vm._e(),_vm._v(\" \"),(_vm.pipeline.flags.stuck)?_c('span',{staticClass:\"js-pipeline-url-stuck badge badge-warning\"},[_vm._v(\"\\n      stuck\\n    \")]):_vm._e()])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../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/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./time_ago.vue?vue&type=script&lang=js\"","<script>\n  import iconTimerSvg from 'icons/_icon_timer.svg';\n  import '../../lib/utils/datetime_utility';\n  import tooltip from '../../vue_shared/directives/tooltip';\n  import timeagoMixin from '../../vue_shared/mixins/timeago';\n\n  export default {\n    directives: {\n      tooltip,\n    },\n    mixins: [\n      timeagoMixin,\n    ],\n    props: {\n      finishedTime: {\n        type: String,\n        required: true,\n      },\n      duration: {\n        type: Number,\n        required: true,\n      },\n    },\n    data() {\n      return {\n        iconTimerSvg,\n      };\n    },\n    computed: {\n      hasDuration() {\n        return this.duration > 0;\n      },\n      hasFinishedTime() {\n        return this.finishedTime !== '';\n      },\n      durationFormated() {\n        const date = new Date(this.duration * 1000);\n\n        let hh = date.getUTCHours();\n        let mm = date.getUTCMinutes();\n        let ss = date.getSeconds();\n\n        // left pad\n        if (hh < 10) {\n          hh = `0${hh}`;\n        }\n        if (mm < 10) {\n          mm = `0${mm}`;\n        }\n        if (ss < 10) {\n          ss = `0${ss}`;\n        }\n\n        return `${hh}:${mm}:${ss}`;\n      },\n    },\n  };\n</script>\n<template>\n  <div class=\"table-section section-15 pipelines-time-ago\">\n    <div\n      class=\"table-mobile-header\"\n      role=\"rowheader\"\n    >\n      持续时间\n    </div>\n    <div class=\"table-mobile-content\">\n      <p\n        class=\"duration\"\n        v-if=\"hasDuration\"\n      >\n        <span v-html=\"iconTimerSvg\">\n        </span>\n        {{ durationFormated }}\n      </p>\n\n      <p\n        class=\"finished-at d-none d-sm-none d-md-block\"\n        v-if=\"hasFinishedTime\"\n      >\n\n        <i\n          class=\"fa fa-calendar\"\n          aria-hidden=\"true\"\n        >\n        </i>\n\n        <time\n          v-tooltip\n          data-placement=\"top\"\n          data-container=\"body\"\n          :title=\"tooltipTitle(finishedTime)\">\n          {{ timeFormated(finishedTime) }}\n        </time>\n      </p>\n    </div>\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./time_ago.vue?vue&type=template&id=233c1a04\"\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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"table-section section-15 pipelines-time-ago\"},[_c('div',{staticClass:\"table-mobile-header\",attrs:{\"role\":\"rowheader\"}},[_vm._v(\"\\n    持续时间\\n  \")]),_vm._v(\" \"),_c('div',{staticClass:\"table-mobile-content\"},[(_vm.hasDuration)?_c('p',{staticClass:\"duration\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.iconTimerSvg)}}),_vm._v(\"\\n      \"+_vm._s(_vm.durationFormated)+\"\\n    \")]):_vm._e(),_vm._v(\" \"),(_vm.hasFinishedTime)?_c('p',{staticClass:\"finished-at d-none d-sm-none d-md-block\"},[_c('i',{staticClass:\"fa fa-calendar\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c('time',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],attrs:{\"data-placement\":\"top\",\"data-container\":\"body\",\"title\":_vm.tooltipTitle(_vm.finishedTime)}},[_vm._v(\"\\n        \"+_vm._s(_vm.timeFormated(_vm.finishedTime))+\"\\n      \")])]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pipelines_table_row.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pipelines_table_row.vue?vue&type=script&lang=js\"","<script>\n  import eventHub from '../event_hub';\n  import PipelinesActionsComponent from './pipelines_actions.vue';\n  import PipelinesArtifactsComponent from './pipelines_artifacts.vue';\n  import CiBadge from '../../vue_shared/components/ci_badge_link.vue';\n  import PipelineStage from './stage.vue';\n  import PipelineUrl from './pipeline_url.vue';\n  import PipelinesTimeago from './time_ago.vue';\n  import CommitComponent from '../../vue_shared/components/commit.vue';\n  import LoadingButton from '../../vue_shared/components/loading_button.vue';\n  import Icon from '../../vue_shared/components/icon.vue';\n  import { PIPELINES_TABLE } from '../constants';\n\n  /**\n   * Pipeline table row.\n   *\n   * Given the received object renders a table row in the pipelines' table.\n   */\n  export default {\n    components: {\n      PipelinesActionsComponent,\n      PipelinesArtifactsComponent,\n      CommitComponent,\n      PipelineStage,\n      PipelineUrl,\n      CiBadge,\n      PipelinesTimeago,\n      LoadingButton,\n      Icon,\n    },\n    props: {\n      pipeline: {\n        type: Object,\n        required: true,\n      },\n      updateGraphDropdown: {\n        type: Boolean,\n        required: false,\n        default: false,\n      },\n      autoDevopsHelpPath: {\n        type: String,\n        required: true,\n      },\n      viewType: {\n        type: String,\n        required: true,\n      },\n      cancelingPipeline: {\n        type: String,\n        required: false,\n        default: null,\n      },\n    },\n    pipelinesTable: PIPELINES_TABLE,\n    data() {\n      return {\n        isRetrying: false,\n      };\n    },\n    computed: {\n      /**\n       * If provided, returns the commit tag.\n       * Needed to render the commit component column.\n       *\n       * This field needs a lot of verification, because of different possible cases:\n       *\n       * 1. person who is an author of a commit might be a GitLab user\n       * 2. if person who is an author of a commit is a GitLab user he/she can have a GitLab avatar\n       * 3. If GitLab user does not have avatar he/she might have a Gravatar\n       * 4. If committer is not a GitLab User he/she can have a Gravatar\n       * 5. We do not have consistent API object in this case\n       * 6. We should improve API and the code\n       *\n       * @returns {Object|Undefined}\n       */\n      commitAuthor() {\n        let commitAuthorInformation;\n\n        if (!this.pipeline || !this.pipeline.commit) {\n          return null;\n        }\n\n        // 1. person who is an author of a commit might be a GitLab user\n        if (this.pipeline.commit.author) {\n          // 2. if person who is an author of a commit is a GitLab user\n          // he/she can have a GitLab avatar\n          if (this.pipeline.commit.author.avatar_url) {\n            commitAuthorInformation = this.pipeline.commit.author;\n\n            // 3. If GitLab user does not have avatar he/she might have a Gravatar\n          } else if (this.pipeline.commit.author_gravatar_url) {\n            commitAuthorInformation = Object.assign({}, this.pipeline.commit.author, {\n              avatar_url: this.pipeline.commit.author_gravatar_url,\n            });\n          }\n          // 4. If committer is not a GitLab User he/she can have a Gravatar\n        } else {\n          commitAuthorInformation = {\n            avatar_url: this.pipeline.commit.author_gravatar_url,\n            path: `mailto:${this.pipeline.commit.author_email}`,\n            username: this.pipeline.commit.author_name,\n          };\n        }\n\n        return commitAuthorInformation;\n      },\n\n      /**\n       * If provided, returns the commit tag.\n       * Needed to render the commit component column.\n       *\n       * @returns {String|Undefined}\n       */\n      commitTag() {\n        if (this.pipeline.ref &&\n          this.pipeline.ref.tag) {\n          return this.pipeline.ref.tag;\n        }\n        return undefined;\n      },\n\n      /**\n       * If provided, returns the commit ref.\n       * Needed to render the commit component column.\n       *\n       * Matches `path` prop sent in the API to `ref_url` prop needed\n       * in the commit component.\n       *\n       * @returns {Object|Undefined}\n       */\n      commitRef() {\n        if (this.pipeline.ref) {\n          return Object.keys(this.pipeline.ref).reduce((accumulator, prop) => {\n            if (prop === 'path') {\n              // eslint-disable-next-line no-param-reassign\n              accumulator.ref_url = this.pipeline.ref[prop];\n            } else {\n              // eslint-disable-next-line no-param-reassign\n              accumulator[prop] = this.pipeline.ref[prop];\n            }\n            return accumulator;\n          }, {});\n        }\n\n        return undefined;\n      },\n\n      /**\n       * If provided, returns the commit url.\n       * Needed to render the commit component column.\n       *\n       * @returns {String|Undefined}\n       */\n      commitUrl() {\n        if (this.pipeline.commit &&\n          this.pipeline.commit.commit_path) {\n          return this.pipeline.commit.commit_path;\n        }\n        return undefined;\n      },\n\n      /**\n       * If provided, returns the commit short sha.\n       * Needed to render the commit component column.\n       *\n       * @returns {String|Undefined}\n       */\n      commitShortSha() {\n        if (this.pipeline.commit &&\n          this.pipeline.commit.short_id) {\n          return this.pipeline.commit.short_id;\n        }\n        return undefined;\n      },\n\n      /**\n       * If provided, returns the commit title.\n       * Needed to render the commit component column.\n       *\n       * @returns {String|Undefined}\n       */\n      commitTitle() {\n        if (this.pipeline.commit &&\n          this.pipeline.commit.title) {\n          return this.pipeline.commit.title;\n        }\n        return undefined;\n      },\n\n      /**\n       * Timeago components expects a number\n       *\n       * @return {type}  description\n       */\n      pipelineDuration() {\n        if (this.pipeline.details && this.pipeline.details.duration) {\n          return this.pipeline.details.duration;\n        }\n\n        return 0;\n      },\n\n      /**\n       * Timeago component expects a String.\n       *\n       * @return {String}\n       */\n      pipelineFinishedAt() {\n        if (this.pipeline.details && this.pipeline.details.finished_at) {\n          return this.pipeline.details.finished_at;\n        }\n\n        return '';\n      },\n\n      pipelineStatus() {\n        if (this.pipeline.details && this.pipeline.details.status) {\n          return this.pipeline.details.status;\n        }\n        return {};\n      },\n\n      displayPipelineActions() {\n        return this.pipeline.flags.retryable ||\n          this.pipeline.flags.cancelable ||\n          this.pipeline.details.manual_actions.length ||\n          this.pipeline.details.artifacts.length;\n      },\n\n      isChildView() {\n        return this.viewType === 'child';\n      },\n\n      isCancelling() {\n        return this.cancelingPipeline === this.pipeline.id;\n      },\n    },\n\n    methods: {\n      handleCancelClick() {\n        eventHub.$emit('openConfirmationModal', {\n          pipelineId: this.pipeline.id,\n          endpoint: this.pipeline.cancel_path,\n        });\n      },\n      handleRetryClick() {\n        this.isRetrying = true;\n        eventHub.$emit('retryPipeline', this.pipeline.retry_path);\n      },\n    },\n  };\n</script>\n<template>\n  <div class=\"commit gl-responsive-table-row\">\n    <div class=\"table-section section-10 commit-link\">\n      <div\n        class=\"table-mobile-header\"\n        role=\"rowheader\"\n      >\n        Status\n      </div>\n      <div class=\"table-mobile-content\">\n        <ci-badge\n          :status=\"pipelineStatus\"\n          :show-text=\"!isChildView\"\n        />\n      </div>\n    </div>\n\n    <pipeline-url\n      :pipeline=\"pipeline\"\n      :auto-devops-help-path=\"autoDevopsHelpPath\"\n    />\n\n    <div class=\"table-section section-20\">\n      <div\n        class=\"table-mobile-header\"\n        role=\"rowheader\">\n        Commit\n      </div>\n      <div class=\"table-mobile-content\">\n        <commit-component\n          :tag=\"commitTag\"\n          :commit-ref=\"commitRef\"\n          :commit-url=\"commitUrl\"\n          :short-sha=\"commitShortSha\"\n          :title=\"commitTitle\"\n          :author=\"commitAuthor\"\n          :show-branch=\"!isChildView\"\n        />\n      </div>\n    </div>\n\n    <div class=\"table-section section-wrap section-20 stage-cell\">\n      <div\n        class=\"table-mobile-header\"\n        role=\"rowheader\">\n        Stages\n      </div>\n      <div class=\"table-mobile-content\">\n        <template v-if=\"pipeline.details.stages.length > 0\">\n          <div\n            class=\"stage-container dropdown js-mini-pipeline-graph\"\n            v-for=\"(stage, index) in pipeline.details.stages\"\n            :key=\"index\">\n            <pipeline-stage\n              :type=\"$options.pipelinesTable\"\n              :stage=\"stage\"\n              :update-dropdown=\"updateGraphDropdown\"\n            />\n          </div>\n        </template>\n      </div>\n    </div>\n\n    <pipelines-timeago\n      :duration=\"pipelineDuration\"\n      :finished-time=\"pipelineFinishedAt\"\n    />\n\n    <div\n      v-if=\"displayPipelineActions\"\n      class=\"table-section section-20 table-button-footer pipeline-actions\"\n    >\n      <div class=\"btn-group table-action-buttons\">\n        <pipelines-actions-component\n          v-if=\"pipeline.details.manual_actions.length\"\n          :actions=\"pipeline.details.manual_actions\"\n        />\n\n        <pipelines-artifacts-component\n          v-if=\"pipeline.details.artifacts.length\"\n          class=\"d-none d-sm-none d-md-block\"\n          :artifacts=\"pipeline.details.artifacts\"\n        />\n\n        <loading-button\n          v-if=\"pipeline.flags.retryable\"\n          @click=\"handleRetryClick\"\n          container-class=\"js-pipelines-retry-button btn btn-default btn-retry\"\n          :loading=\"isRetrying\"\n          :disabled=\"isRetrying\"\n        >\n          <icon name=\"repeat\" />\n        </loading-button>\n\n        <loading-button\n          v-if=\"pipeline.flags.cancelable\"\n          @click=\"handleCancelClick\"\n          data-toggle=\"modal\"\n          data-target=\"#confirmation-modal\"\n          container-class=\"js-pipelines-cancel-button btn btn-remove\"\n          :loading=\"isCancelling\"\n          :disabled=\"isCancelling\"\n        >\n          <icon name=\"close\" />\n        </loading-button>\n      </div>\n    </div>\n  </div>\n</template>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../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/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pipelines_table.vue?vue&type=script&lang=js\"","<script>\n  import Modal from '~/vue_shared/components/gl_modal.vue';\n  import { s__, sprintf } from '~/locale';\n  import PipelinesTableRowComponent from './pipelines_table_row.vue';\n  import eventHub from '../event_hub';\n\n  /**\n   * Pipelines Table Component.\n   *\n   * Given an array of objects, renders a table.\n   */\n  export default {\n    components: {\n      PipelinesTableRowComponent,\n      Modal,\n    },\n    props: {\n      pipelines: {\n        type: Array,\n        required: true,\n      },\n      updateGraphDropdown: {\n        type: Boolean,\n        required: false,\n        default: false,\n      },\n      autoDevopsHelpPath: {\n        type: String,\n        required: true,\n      },\n      viewType: {\n        type: String,\n        required: true,\n      },\n    },\n    data() {\n      return {\n        pipelineId: '',\n        endpoint: '',\n        cancelingPipeline: null,\n      };\n    },\n    computed: {\n      modalTitle() {\n        return sprintf(s__('Pipeline|Stop pipeline #%{pipelineId}?'), {\n          pipelineId: `${this.pipelineId}`,\n        }, false);\n      },\n      modalText() {\n        return sprintf(s__('Pipeline|You’re about to stop pipeline %{pipelineId}.'), {\n          pipelineId: `<strong>#${this.pipelineId}</strong>`,\n        }, false);\n      },\n    },\n    created() {\n      eventHub.$on('openConfirmationModal', this.setModalData);\n    },\n    beforeDestroy() {\n      eventHub.$off('openConfirmationModal', this.setModalData);\n    },\n    methods: {\n      setModalData(data) {\n        this.pipelineId = data.pipelineId;\n        this.endpoint = data.endpoint;\n      },\n      onSubmit() {\n        eventHub.$emit('postAction', this.endpoint);\n        this.cancelingPipeline = this.pipelineId;\n      },\n    },\n  };\n</script>\n<template>\n  <div class=\"ci-table\">\n    <div\n      class=\"gl-responsive-table-row table-row-header\"\n      role=\"row\"\n    >\n      <div\n        class=\"table-section section-10 js-pipeline-status pipeline-status\"\n        role=\"rowheader\"\n      >\n        状态\n      </div>\n      <div\n        class=\"table-section section-15 js-pipeline-info pipeline-info\"\n        role=\"rowheader\"\n      >\n        流水线\n      </div>\n      <div\n        class=\"table-section section-20 js-pipeline-commit pipeline-commit\"\n        role=\"rowheader\"\n      >\n        提交\n      </div>\n      <div\n        class=\"table-section section-20 js-pipeline-stages pipeline-stages\"\n        role=\"rowheader\"\n      >\n        步骤\n      </div>\n    </div>\n    <pipelines-table-row-component\n      v-for=\"model in pipelines\"\n      :key=\"model.id\"\n      :pipeline=\"model\"\n      :update-graph-dropdown=\"updateGraphDropdown\"\n      :auto-devops-help-path=\"autoDevopsHelpPath\"\n      :view-type=\"viewType\"\n      :canceling-pipeline=\"cancelingPipeline\"\n    />\n\n    <modal\n      id=\"confirmation-modal\"\n      :header-title-text=\"modalTitle\"\n      footer-primary-button-variant=\"danger\"\n      :footer-primary-button-text=\"s__('Pipeline|Stop pipeline')\"\n      @submit=\"onSubmit\"\n    >\n      <span v-html=\"modalText\"></span>\n    </modal>\n\n  </div>\n</template>\n","import { render, staticRenderFns } from \"./pipelines_table_row.vue?vue&type=template&id=63ba41e2\"\nimport script from \"./pipelines_table_row.vue?vue&type=script&lang=js\"\nexport * from \"./pipelines_table_row.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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"commit gl-responsive-table-row\"},[_c('div',{staticClass:\"table-section section-10 commit-link\"},[_c('div',{staticClass:\"table-mobile-header\",attrs:{\"role\":\"rowheader\"}},[_vm._v(\"\\n      Status\\n    \")]),_vm._v(\" \"),_c('div',{staticClass:\"table-mobile-content\"},[_c('ci-badge',{attrs:{\"status\":_vm.pipelineStatus,\"show-text\":!_vm.isChildView}})],1)]),_vm._v(\" \"),_c('pipeline-url',{attrs:{\"pipeline\":_vm.pipeline,\"auto-devops-help-path\":_vm.autoDevopsHelpPath}}),_vm._v(\" \"),_c('div',{staticClass:\"table-section section-20\"},[_c('div',{staticClass:\"table-mobile-header\",attrs:{\"role\":\"rowheader\"}},[_vm._v(\"\\n      Commit\\n    \")]),_vm._v(\" \"),_c('div',{staticClass:\"table-mobile-content\"},[_c('commit-component',{attrs:{\"tag\":_vm.commitTag,\"commit-ref\":_vm.commitRef,\"commit-url\":_vm.commitUrl,\"short-sha\":_vm.commitShortSha,\"title\":_vm.commitTitle,\"author\":_vm.commitAuthor,\"show-branch\":!_vm.isChildView}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"table-section section-wrap section-20 stage-cell\"},[_c('div',{staticClass:\"table-mobile-header\",attrs:{\"role\":\"rowheader\"}},[_vm._v(\"\\n      Stages\\n    \")]),_vm._v(\" \"),_c('div',{staticClass:\"table-mobile-content\"},[(_vm.pipeline.details.stages.length > 0)?_vm._l((_vm.pipeline.details.stages),function(stage,index){return _c('div',{key:index,staticClass:\"stage-container dropdown js-mini-pipeline-graph\"},[_c('pipeline-stage',{attrs:{\"type\":_vm.$options.pipelinesTable,\"stage\":stage,\"update-dropdown\":_vm.updateGraphDropdown}})],1)}):_vm._e()],2)]),_vm._v(\" \"),_c('pipelines-timeago',{attrs:{\"duration\":_vm.pipelineDuration,\"finished-time\":_vm.pipelineFinishedAt}}),_vm._v(\" \"),(_vm.displayPipelineActions)?_c('div',{staticClass:\"table-section section-20 table-button-footer pipeline-actions\"},[_c('div',{staticClass:\"btn-group table-action-buttons\"},[(_vm.pipeline.details.manual_actions.length)?_c('pipelines-actions-component',{attrs:{\"actions\":_vm.pipeline.details.manual_actions}}):_vm._e(),_vm._v(\" \"),(_vm.pipeline.details.artifacts.length)?_c('pipelines-artifacts-component',{staticClass:\"d-none d-sm-none d-md-block\",attrs:{\"artifacts\":_vm.pipeline.details.artifacts}}):_vm._e(),_vm._v(\" \"),(_vm.pipeline.flags.retryable)?_c('loading-button',{attrs:{\"container-class\":\"js-pipelines-retry-button btn btn-default btn-retry\",\"loading\":_vm.isRetrying,\"disabled\":_vm.isRetrying},on:{\"click\":_vm.handleRetryClick}},[_c('icon',{attrs:{\"name\":\"repeat\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.pipeline.flags.cancelable)?_c('loading-button',{attrs:{\"data-toggle\":\"modal\",\"data-target\":\"#confirmation-modal\",\"container-class\":\"js-pipelines-cancel-button btn btn-remove\",\"loading\":_vm.isCancelling,\"disabled\":_vm.isCancelling},on:{\"click\":_vm.handleCancelClick}},[_c('icon',{attrs:{\"name\":\"close\"}})],1):_vm._e()],1)]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./pipelines_table.vue?vue&type=template&id=921d8314\"\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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ci-table\"},[_vm._m(0),_vm._v(\" \"),_vm._l((_vm.pipelines),function(model){return _c('pipelines-table-row-component',{key:model.id,attrs:{\"pipeline\":model,\"update-graph-dropdown\":_vm.updateGraphDropdown,\"auto-devops-help-path\":_vm.autoDevopsHelpPath,\"view-type\":_vm.viewType,\"canceling-pipeline\":_vm.cancelingPipeline}})}),_vm._v(\" \"),_c('modal',{attrs:{\"id\":\"confirmation-modal\",\"header-title-text\":_vm.modalTitle,\"footer-primary-button-variant\":\"danger\",\"footer-primary-button-text\":_vm.s__('Pipeline|Stop pipeline')},on:{\"submit\":_vm.onSubmit}},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.modalText)}})])],2)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gl-responsive-table-row table-row-header\",attrs:{\"role\":\"row\"}},[_c('div',{staticClass:\"table-section section-10 js-pipeline-status pipeline-status\",attrs:{\"role\":\"rowheader\"}},[_vm._v(\"\\n      状态\\n    \")]),_vm._v(\" \"),_c('div',{staticClass:\"table-section section-15 js-pipeline-info pipeline-info\",attrs:{\"role\":\"rowheader\"}},[_vm._v(\"\\n      流水线\\n    \")]),_vm._v(\" \"),_c('div',{staticClass:\"table-section section-20 js-pipeline-commit pipeline-commit\",attrs:{\"role\":\"rowheader\"}},[_vm._v(\"\\n      提交\\n    \")]),_vm._v(\" \"),_c('div',{staticClass:\"table-section section-20 js-pipeline-stages pipeline-stages\",attrs:{\"role\":\"rowheader\"}},[_vm._v(\"\\n      步骤\\n    \")])])}]\n\nexport { render, staticRenderFns }","import Visibility from 'visibilityjs';\nimport { __ } from '../../locale';\nimport Flash from '../../flash';\nimport Poll from '../../lib/utils/poll';\nimport EmptyState from '../components/empty_state.vue';\nimport SvgBlankState from '../components/blank_state.vue';\nimport LoadingIcon from '../../vue_shared/components/loading_icon.vue';\nimport PipelinesTableComponent from '../components/pipelines_table.vue';\nimport eventHub from '../event_hub';\nimport { CANCEL_REQUEST } from '../constants';\n\nexport default {\n  components: {\n    PipelinesTableComponent,\n    SvgBlankState,\n    EmptyState,\n    LoadingIcon,\n  },\n  data() {\n    return {\n      isLoading: false,\n      hasError: false,\n      isMakingRequest: false,\n      updateGraphDropdown: false,\n      hasMadeRequest: false,\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('retryPipeline', this.postAction);\n    eventHub.$on('clickedDropdown', this.updateTable);\n    eventHub.$on('refreshPipelinesTable', this.fetchPipelines);\n  },\n  beforeDestroy() {\n    eventHub.$off('postAction', this.postAction);\n    eventHub.$off('retryPipeline', this.postAction);\n    eventHub.$off('clickedDropdown', this.updateTable);\n    eventHub.$off('refreshPipelinesTable', this.fetchPipelines);\n  },\n  destroyed() {\n    this.poll.stop();\n  },\n  methods: {\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      // Update the table\n      return this.getPipelines()\n        .then(() => 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.getPipelines(this.requestData)\n        .then(response => this.successCallback(response))\n        .catch((error) => this.errorCallback(error));\n    },\n    setCommonData(pipelines) {\n      this.store.storePipelines(pipelines);\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    },\n    setIsMakingRequest(isMakingRequest) {\n      this.isMakingRequest = isMakingRequest;\n\n      if (isMakingRequest) {\n        this.updateGraphDropdown = false;\n      }\n    },\n    postAction(endpoint) {\n      this.service.postAction(endpoint)\n        .then(() => this.fetchPipelines())\n        .catch(() => Flash(__('An error occurred while making the request.')));\n    },\n  },\n};\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\n  storePipelines(pipelines = []) {\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","import axios from '../../lib/utils/axios_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.CancelToken;\n\n    this.cancelationSource = CancelToken.source();\n\n    return axios.get(this.endpoint, {\n      params: { scope, page },\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","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"40\\\" height=\\\"40\\\" viewBox=\\\"0 0 40 40\\\"><g fill=\\\"#8F8F8F\\\" fill-rule=\\\"evenodd\\\"><path d=\\\"M29.513 10.134A15.922 15.922 0 0 0 23 7.28V6h2.993C26.55 6 27 5.552 27 5V2a1 1 0 0 0-1.007-1H14.007C13.45 1 13 1.448 13 2v3a1 1 0 0 0 1.007 1H17v1.28C9.597 8.686 4 15.19 4 23c0 8.837 7.163 16 16 16s16-7.163 16-16c0-3.461-1.099-6.665-2.967-9.283l1.327-1.58a2.498 2.498 0 0 0-.303-3.53 2.499 2.499 0 0 0-3.528.315l-1.016 1.212zM20 34c6.075 0 11-4.925 11-11s-4.925-11-11-11S9 16.925 9 23s4.925 11 11 11z\\\"/><path d=\\\"M19 21h-4.002c-.552 0-.998.452-.998 1.01v1.98c0 .567.447 1.01.998 1.01h7.004c.274 0 .521-.111.701-.291a.979.979 0 0 0 .297-.704v-8.01c0-.54-.452-.995-1.01-.995h-1.98a.997.997 0 0 0-1.01.995V21z\\\"/></g></svg>\\n\"","import Vue from 'vue';\n\nexport default new Vue();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',{staticClass:\"user-avatar-link\",attrs:{\"href\":_vm.linkHref}},[_c('user-avatar-image',{attrs:{\"img-src\":_vm.imgSrc,\"img-alt\":_vm.imgAlt,\"css-classes\":_vm.imgCssClasses,\"size\":_vm.imgSize,\"tooltip-text\":_vm.avatarTooltipText,\"tooltip-placement\":_vm.tooltipPlacement}}),(_vm.shouldShowUsername)?_c('span',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],attrs:{\"title\":_vm.tooltipText,\"tooltip-placement\":_vm.tooltipPlacement}},[_vm._v(_vm._s(_vm.username))]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../../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/babel-loader/lib/index.js??ref--0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./user_avatar_link.vue?vue&type=script&lang=js\"","<script>\n\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=\"20\"\n    :tooltip-text=\"tooltipText\"\n    :tooltip-placement=\"top\"\n    :username=\"username\"\n  />\n\n*/\n\nimport userAvatarImage from './user_avatar_image.vue';\nimport tooltip from '../../directives/tooltip';\n\nexport default {\n  name: 'UserAvatarLink',\n  components: {\n    userAvatarImage,\n  },\n  directives: {\n    tooltip,\n  },\n  props: {\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    imgSize: {\n      type: Number,\n      required: false,\n      default: 20,\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    username: {\n      type: String,\n      required: false,\n      default: '',\n    },\n  },\n  computed: {\n    shouldShowUsername() {\n      return this.username.length > 0;\n    },\n    avatarTooltipText() {\n      return this.shouldShowUsername ? '' : this.tooltipText;\n    },\n  },\n};\n</script>\n\n<template>\n  <a\n    class=\"user-avatar-link\"\n    :href=\"linkHref\">\n    <user-avatar-image\n      :img-src=\"imgSrc\"\n      :img-alt=\"imgAlt\"\n      :css-classes=\"imgCssClasses\"\n      :size=\"imgSize\"\n      :tooltip-text=\"avatarTooltipText\"\n      :tooltip-placement=\"tooltipPlacement\"\n    /><span\n      v-if=\"shouldShowUsername\"\n      v-tooltip\n      :title=\"tooltipText\"\n      :tooltip-placement=\"tooltipPlacement\"\n    >{{ username }}</span>\n  </a>\n</template>\n","import { render, staticRenderFns } from \"./user_avatar_link.vue?vue&type=template&id=5dd80867\"\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"],"sourceRoot":""}