{"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\">×</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":""}