{"version":3,"sources":["webpack:///./repository/log_tree.js","webpack:///./repository/graphql.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/utils/stable-sort.js","webpack:////build/source/node_modules/immer/dist/immer.esm.js","webpack:////build/source/ee/app/assets/javascripts/repository/queries/commit.fragment.graphql","webpack:///./repository/queries/project_path.query.graphql","webpack:///./repository/components/preview/index.vue","webpack:///./repository/components/preview/index.vue?2033","webpack:///repository/components/preview/index.vue","webpack:///./repository/components/preview/index.vue?cb46","webpack:///./repository/queries/commits.query.graphql","webpack:///./repository/queries/readme.query.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/nav/nav.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/tabs/tabs.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/tabs/tabs/tabs.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/tabs/tab.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/tabs/tab/tab.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/tabs/constants.js","webpack:////build/source/ee/app/assets/javascripts/repository/utils/commit.js","webpack:///./repository/utils/commit.js"],"names":["fetchpromises","resolvers","maxOffset","nextOffset","currentPath","setNextOffset","offset","fetchLogsTree","client","path","resolver","_maxOffset","offsetNumber","Number","Promise","resolve","push","projectPath","readQuery","query","projectPathQuery","escapedRef","refQuery","axios","get","gon","relative_url_root","encodeURIComponent","replace","params","format","then","data","newData","headers","headerLogsOffset","sourceData","commitsQuery","produce","draftState","commits","normalizeData","writeQuery","forEach","r","entry","commit","find","c","filePath","joinPaths","name","resolveCommit","Vue","use","VueApollo","defaultClient","createDefaultClient","Query","_","fileName","readme","url","viewer","__typename","cacheConfig","dataIdFromObject","obj","flatPath","id","_id","stableSort","array","compareFn","map","a","index","sort","b","this","bind","e","n","arguments","length","t","Array","Error","join","Q","Object","getPrototypeOf","hasOwnProperty","call","constructor","Function","toString","Z","isArray","L","s","v","i","o","keys","nn","u","has","prototype","f","set","delete","add","X","Map","q","Set","p","l","slice","rn","writable","configurable","enumerable","value","create","d","y","clear","h","freeze","isFrozen","tn","U","j","O","g","S","w","m","P","M","x","H","A","I","k","R","D","concat","F","z","getOwnPropertyDescriptor","E","N","T","C","en","on","Proxy","revocable","revoke","proxy","J","K","from","G","W","Symbol","B","Reflect","for","iterator","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","getOwnPropertyDescriptors","deleteProperty","defineProperty","setPrototypeOf","apply","an","produceWithPatches","useProxies","setUseProxies","autoFreeze","setAutoFreeze","createDraft","finishDraft","applyPatches","op","$","fn","doc","loc","source","definitionRefs","findOperation","definitions","element","def","refs","collectFragmentReferences","node","kind","type","selectionSet","selections","selection","variableDefinitions","module","exports","operationName","newDoc","opRefs","allRefs","newRefs","refName","size","prevRefs","childRef","oneQuery","apollo","readmeQuery","variables","blob","webPath","components","GlIcon","GlLink","GlLoadingIcon","directives","SafeHtml","props","required","computed","isLoading","$apollo","queries","loading","watch","newVal","_this","$nextTick","handleLocationHash","renderGFM","$refs","safeHtmlConfig","ADD_TAGS","component","_vm","_c","_self","staticClass","attrs","_v","_s","rawName","html","expression","arg","$options","ref","_e","names","filter","align","cardHeader","fill","justified","pills","small","tabs","tag","BNav","functional","_ref","children","class","mixin","modelMixin","modelProps","prop","MODEL_PROP_NAME","event","MODEL_EVENT_NAME","notDisabled","tab","disabled","BVTabButton","inject","getBvTabs","default","controls","noKeyNav","posInSet","setSize","tabIndex","methods","link","keyCode","shiftKey","$emit","indexOf","handleEvent","title","localActive","titleItemClass","titleLinkClass","titleLinkAttributes","$link","active","bvTabs","activeNavItemClass","role","tabindex","click","keydown","normalizeSlot","navProps","activeTabClass","contentClass","end","lazy","navClass","navWrapperClass","noFade","noNavStyle","BTabs","mixins","currentTab","registeredTabs","newValue","oldValue","$tab","activateTab","previousTab","nextTab","updateTabs","$_observer","setObserver","$t","undefined","disconnect","handler","content","childList","subtree","attributes","attributeFilter","$tabs","order","selector","safeId","$el","identity","getTabs","reverse","buttons","$btn","$button","getButtonForTab","$forceUpdate","result","tabEvent","cancelable","vueTarget","componentId","defaultPrevented","emitTabClick","focus","focusButton","currentIndex","math","firstTab","lastTab","$activeTab","$fallbackTab","$buttons","controlledBy","clickTab","key","$nav","$children","$empty","$content","validatorHelper","every","val","__vue_script__","GlButton","inheritAttrs","actionPrimary","validator","actionSecondary","actionTertiary","String","Boolean","syncActiveTabWithQueryParams","queryParamName","activeTabIndex","some","$listeners","input","handleInput","immediate","syncActiveTabFromQueryParams","window","addEventListener","removeEventListener","buttonBinding","queryParamValue","getQueryParamValue","tabIndexToActivate","findIndex","getTabQueryParamValue","bTabs","URLSearchParams","location","search","currentQueryParamValue","newQueryParamValue","searchParams","history","pushState","pathname","$attrs","setQueryParamValueIfNecessary","__vue_component__","render","_h","$createElement","_g","_b","scopedSlots","_u","_l","$slots","slot","_t","primary","text","secondary","tertiary","listeners","staticRenderFns","MODEL_EVENT_NAME_ACTIVE","buttonId","noBody","BTab","_isTab","card","fade","activate","deactivate","registerTab","updateButton","hasNormalizedSlot","unregisterTab","deactivateTab","tabClasses","computedLazy","mode","computedNoFade","trim","linkClass","extra","sha","message","titleHtml","commit_title_html","committedDate","committed_date","commitPath","commit_path","file_name","normalizeDataFOSS","lockLabel","lock_label"],"mappings":"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","file":"commons-pages.groups.show-pages.projects.blob.show-pages.projects.show-pages.projects.tree.show.2f630089.chunk.js","sourcesContent":["import produce from 'immer';\nimport { normalizeData } from 'ee_else_ce/repository/utils/commit';\nimport axios from '~/lib/utils/axios_utils';\nimport { joinPaths } from '~/lib/utils/url_utility';\nimport commitsQuery from './queries/commits.query.graphql';\nimport projectPathQuery from './queries/project_path.query.graphql';\nimport refQuery from './queries/ref.query.graphql';\n\nconst fetchpromises = {};\nconst resolvers = {};\nlet maxOffset;\nlet nextOffset;\nlet currentPath;\n\nfunction setNextOffset(offset) {\n nextOffset = offset || null;\n}\n\nexport function resolveCommit(commits, path, { resolve, entry }) {\n const commit = commits.find((c) => c.filePath === joinPaths(path, entry.name));\n\n if (commit) {\n resolve(commit);\n }\n}\n\n// eslint-disable-next-line max-params\nexport function fetchLogsTree(client, path, offset, resolver = null, _maxOffset = null) {\n if (_maxOffset) {\n maxOffset = _maxOffset;\n }\n\n if (!currentPath || currentPath !== path) {\n // ensures the nextOffset is reset if the user changed directories\n setNextOffset(null);\n }\n\n currentPath = path;\n\n const offsetNumber = Number(offset);\n\n if (!nextOffset && offsetNumber > maxOffset) {\n setNextOffset(offsetNumber - 25); // ensures commit data is fetched for newly added rows that need data from the previous request (requests are made in batches of 25).\n return Promise.resolve();\n }\n\n if (resolver) {\n if (!resolvers[path]) {\n resolvers[path] = [resolver];\n } else {\n resolvers[path].push(resolver);\n }\n }\n\n if (fetchpromises[path]) return fetchpromises[path];\n\n const { projectPath } = client.readQuery({ query: projectPathQuery });\n const { escapedRef } = client.readQuery({ query: refQuery });\n\n fetchpromises[path] = axios\n .get(\n `${gon.relative_url_root}/${projectPath}/-/refs/${escapedRef}/logs_tree/${encodeURIComponent(\n path.replace(/^\\//, ''),\n )}`,\n {\n params: { format: 'json', offset: nextOffset || offset },\n },\n )\n .then(({ data: newData, headers }) => {\n const headerLogsOffset = headers['more-logs-offset'];\n const sourceData = client.readQuery({ query: commitsQuery });\n const data = produce(sourceData, (draftState) => {\n draftState.commits.push(...normalizeData(newData, path));\n });\n client.writeQuery({\n query: commitsQuery,\n data,\n });\n\n resolvers[path].forEach((r) => resolveCommit(data.commits, path, r));\n\n delete fetchpromises[path];\n\n if (headerLogsOffset) {\n setNextOffset(null);\n fetchLogsTree(client, path, headerLogsOffset);\n } else {\n delete resolvers[path];\n maxOffset = null;\n setNextOffset(null);\n }\n });\n\n return fetchpromises[path];\n}\n","import Vue from 'vue';\nimport VueApollo from 'vue-apollo';\nimport createDefaultClient from '~/lib/graphql';\nimport axios from '~/lib/utils/axios_utils';\nimport { fetchLogsTree } from './log_tree';\n\nVue.use(VueApollo);\n\nconst defaultClient = createDefaultClient(\n {\n Query: {\n commit(_, { path, fileName, maxOffset }) {\n return new Promise((resolve) => {\n fetchLogsTree(\n defaultClient,\n path,\n '0',\n {\n resolve,\n entry: {\n name: fileName,\n },\n },\n maxOffset,\n );\n });\n },\n readme(_, { url }) {\n return axios\n .get(url, { params: { format: 'json', viewer: 'rich' } })\n .then(({ data }) => ({ ...data, __typename: 'ReadmeFile' }));\n },\n },\n },\n {\n cacheConfig: {\n dataIdFromObject: (obj) => {\n /* eslint-disable @gitlab/require-i18n-strings */\n // eslint-disable-next-line no-underscore-dangle\n switch (obj.__typename) {\n // We need to create a dynamic ID for each entry\n // Each entry can have the same ID as the ID is a commit ID\n // So we create a unique cache ID with the path and the ID\n case 'TreeEntry':\n case 'Submodule':\n case 'Blob':\n return `${encodeURIComponent(obj.flatPath)}-${obj.id}`;\n default:\n // If the type doesn't match any of the above we fallback\n // to using the default Apollo ID\n // eslint-disable-next-line no-underscore-dangle\n return obj.id || obj._id;\n }\n /* eslint-enable @gitlab/require-i18n-strings */\n },\n },\n },\n);\n\nexport default new VueApollo({\n defaultClient,\n});\n","/*\n * Consistent and stable sort function across JavaScript platforms\n *\n * Inconsistent sorts can cause SSR problems between client and server\n * such as in if sortBy is applied to the data on server side render.\n * Chrome and V8 native sorts are inconsistent/unstable\n *\n * This function uses native sort with fallback to index compare when the a and b\n * compare returns 0\n *\n * Algorithm based on:\n * https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645\n *\n * @param {array} array to sort\n * @param {function} sort compare function\n * @return {array}\n */\nconst stableSort = (array, compareFn) => {\n // Using `.bind(compareFn)` on the wrapped anonymous function improves\n // performance by avoiding the function call setup. We don't use an arrow\n // function here as it binds `this` to the `stableSort` context rather than\n // the `compareFn` context, which wouldn't give us the performance increase.\n return array.map((a, index) => [index, a]).sort(function (a, b) {\n return this(a[1], b[1]) || a[0] - b[0];\n }.bind(compareFn)).map(e => e[1]);\n};\n\nexport { stableSort };\n","function n(n){for(var r=arguments.length,t=Array(r>1?r-1:0),e=1;e3?r.i-4:r.i:Array.isArray(n)?1:s(n)?2:v(n)?3:0}function u(n,r){return 2===o(n)?n.has(r):Object.prototype.hasOwnProperty.call(n,r)}function a(n,r){return 2===o(n)?n.get(r):n[r]}function f(n,r,t){var e=o(n);2===e?n.set(r,t):3===e?(n.delete(r),n.add(t)):n[r]=t}function c(n,r){return n===r?0!==n||1/n==1/r:n!=n&&r!=r}function s(n){return X&&n instanceof Map}function v(n){return q&&n instanceof Set}function p(n){return n.o||n.t}function l(n){if(Array.isArray(n))return Array.prototype.slice.call(n);var r=rn(n);delete r[Q];for(var t=nn(r),e=0;e1&&(n.set=n.add=n.clear=n.delete=h),Object.freeze(n),e&&i(n,(function(n,r){return d(r,!0)}),!0),n)}function h(){n(2)}function y(n){return null==n||\"object\"!=typeof n||Object.isFrozen(n)}function b(r){var t=tn[r];return t||n(18,r),t}function m(n,r){tn[n]||(tn[n]=r)}function _(){return\"production\"===process.env.NODE_ENV||U||n(0),U}function j(n,r){r&&(b(\"Patches\"),n.u=[],n.s=[],n.v=r)}function O(n){g(n),n.p.forEach(S),n.p=null}function g(n){n===U&&(U=n.l)}function w(n){return U={p:[],l:U,h:n,m:!0,_:0}}function S(n){var r=n[Q];0===r.i||1===r.i?r.j():r.O=!0}function P(r,e){e._=e.p.length;var i=e.p[0],o=void 0!==r&&r!==i;return e.h.g||b(\"ES5\").S(e,r,o),o?(i[Q].P&&(O(e),n(4)),t(r)&&(r=M(e,r),e.l||x(e,r)),e.u&&b(\"Patches\").M(i[Q].t,r,e.u,e.s)):r=M(e,i,[]),O(e),e.u&&e.v(e.u,e.s),r!==H?r:void 0}function M(n,r,t){if(y(r))return r;var e=r[Q];if(!e)return i(r,(function(i,o){return A(n,e,r,i,o,t)}),!0),r;if(e.A!==n)return r;if(!e.P)return x(n,e.t,!0),e.t;if(!e.I){e.I=!0,e.A._--;var o=4===e.i||5===e.i?e.o=l(e.k):e.o;i(3===e.i?new Set(o):o,(function(r,i){return A(n,e,o,r,i,t)})),x(n,o,!1),t&&n.u&&b(\"Patches\").R(e,t,n.u,n.s)}return e.o}function A(e,i,o,a,c,s){if(\"production\"!==process.env.NODE_ENV&&c===o&&n(5),r(c)){var v=M(e,c,s&&i&&3!==i.i&&!u(i.D,a)?s.concat(a):void 0);if(f(o,a,v),!r(v))return;e.m=!1}if(t(c)&&!y(c)){if(!e.h.F&&e._<1)return;M(e,c),i&&i.A.l||x(e,c)}}function x(n,r,t){void 0===t&&(t=!1),n.h.F&&n.m&&d(r,t)}function z(n,r){var t=n[Q];return(t?p(t):n)[r]}function I(n,r){if(r in n)for(var t=Object.getPrototypeOf(n);t;){var e=Object.getOwnPropertyDescriptor(t,r);if(e)return e;t=Object.getPrototypeOf(t)}}function k(n){n.P||(n.P=!0,n.l&&k(n.l))}function E(n){n.o||(n.o=l(n.t))}function R(n,r,t){var e=s(r)?b(\"MapSet\").N(r,t):v(r)?b(\"MapSet\").T(r,t):n.g?function(n,r){var t=Array.isArray(n),e={i:t?1:0,A:r?r.A:_(),P:!1,I:!1,D:{},l:r,t:n,k:null,o:null,j:null,C:!1},i=e,o=en;t&&(i=[e],o=on);var u=Proxy.revocable(i,o),a=u.revoke,f=u.proxy;return e.k=f,e.j=a,f}(r,t):b(\"ES5\").J(r,t);return(t?t.A:_()).p.push(e),e}function D(e){return r(e)||n(22,e),function n(r){if(!t(r))return r;var e,u=r[Q],c=o(r);if(u){if(!u.P&&(u.i<4||!b(\"ES5\").K(u)))return u.t;u.I=!0,e=F(r,c),u.I=!1}else e=F(r,c);return i(e,(function(r,t){u&&a(u.t,r)===t||f(e,r,n(t))})),3===c?new Set(e):e}(e)}function F(n,r){switch(r){case 2:return new Map(n);case 3:return Array.from(n)}return l(n)}function N(){function t(n,r){var t=s[n];return t?t.enumerable=r:s[n]=t={configurable:!0,enumerable:r,get:function(){var r=this[Q];return\"production\"!==process.env.NODE_ENV&&f(r),en.get(r,n)},set:function(r){var t=this[Q];\"production\"!==process.env.NODE_ENV&&f(t),en.set(t,n,r)}},t}function e(n){for(var r=n.length-1;r>=0;r--){var t=n[r][Q];if(!t.P)switch(t.i){case 5:a(t)&&k(t);break;case 4:o(t)&&k(t)}}}function o(n){for(var r=n.t,t=n.k,e=nn(t),i=e.length-1;i>=0;i--){var o=e[i];if(o!==Q){var a=r[o];if(void 0===a&&!u(r,o))return!0;var f=t[o],s=f&&f[Q];if(s?s.t!==a:!c(f,a))return!0}}var v=!!r[Q];return e.length!==nn(r).length+(v?0:1)}function a(n){var r=n.k;if(r.length!==n.t.length)return!0;var t=Object.getOwnPropertyDescriptor(r,r.length-1);if(t&&!t.get)return!0;for(var e=0;e1?t-1:0),o=1;o1?t-1:0),o=1;o=0;e--){var i=t[e];if(0===i.path.length&&\"replace\"===i.op){n=i.value;break}}e>-1&&(t=t.slice(e+1));var o=b(\"Patches\").$;return r(n)?o(n,t):this.produce(n,(function(n){return o(n,t)}))},e}(),an=new un,fn=an.produce,cn=an.produceWithPatches.bind(an),sn=an.setAutoFreeze.bind(an),vn=an.setUseProxies.bind(an),pn=an.applyPatches.bind(an),ln=an.createDraft.bind(an),dn=an.finishDraft.bind(an);export default fn;export{un as Immer,pn as applyPatches,K as castDraft,$ as castImmutable,ln as createDraft,D as current,J as enableAllPlugins,N as enableES5,C as enableMapSet,T as enablePatches,dn as finishDraft,d as freeze,L as immerable,r as isDraft,t as isDraftable,H as nothing,e as original,fn as produce,cn as produceWithPatches,sn as setAutoFreeze,vn as setUseProxies};\n//# sourceMappingURL=immer.esm.js.map\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"TreeEntryCommit\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LogTreeCommit\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sha\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"titleHtml\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"committedDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"commitPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fileName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"filePath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lockLabel\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":137}};\n doc.loc.source = {\"body\":\"fragment TreeEntryCommit on LogTreeCommit {\\n sha\\n message\\n titleHtml\\n committedDate\\n commitPath\\n fileName\\n filePath\\n lockLabel\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"TreeEntryCommit\"] = oneQuery(doc, \"TreeEntryCommit\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getProjectPath\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"},\"arguments\":[],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[]}]}]}}],\"loc\":{\"start\":0,\"end\":47}};\n doc.loc.source = {\"body\":\"query getProjectPath {\\n projectPath @client\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"getProjectPath\"] = oneQuery(doc, \"getProjectPath\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('article',{staticClass:\"file-holder limited-width-container readme-holder\"},[_c('div',{staticClass:\"js-file-title file-title-flex-parent\"},[_c('div',{staticClass:\"file-header-content\"},[_c('gl-icon',{attrs:{\"name\":\"doc-text\"}}),_vm._v(\" \"),_c('gl-link',{attrs:{\"href\":_vm.blob.webPath}},[_c('strong',[_vm._v(_vm._s(_vm.blob.name))])])],1)]),_vm._v(\" \"),_c('div',{staticClass:\"blob-viewer\",attrs:{\"data-testid\":\"blob-viewer-content\",\"itemprop\":\"about\"}},[(_vm.isLoading)?_c('gl-loading-icon',{staticClass:\"my-4 mx-auto\",attrs:{\"size\":\"lg\",\"color\":\"dark\"}}):(_vm.readme)?_c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html:[$options.safeHtmlConfig]\",value:(_vm.readme.html),expression:\"readme.html\",arg:_vm.$options.safeHtmlConfig}],ref:\"readme\"}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js??ref--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js\"","\n\n\n\n","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=cceef958\"\nimport script from \"./index.vue?vue&type=script&lang=js\"\nexport * from \"./index.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getCommits\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"commits\"},\"arguments\":[],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"TreeEntryCommit\"},\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":133}};\n doc.loc.source = {\"body\":\"#import \\\"ee_else_ce/repository/queries/commit.fragment.graphql\\\"\\n\\nquery getCommits {\\n commits @client {\\n ...TreeEntryCommit\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n doc.definitions = doc.definitions.concat(unique(require(\"ee_else_ce/repository/queries/commit.fragment.graphql\").definitions));\n\n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"getCommits\"] = oneQuery(doc, \"getCommits\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getReadme\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"readme\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"html\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":78}};\n doc.loc.source = {\"body\":\"query getReadme($url: String!) {\\n readme(url: $url) @client {\\n html\\n }\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"getReadme\"] = oneQuery(doc, \"getReadme\");\n \n","import { extend, mergeData } from '../../vue';\nimport { NAME_NAV } from '../../constants/components';\nimport { PROP_TYPE_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\n\n// --- Helper methods ---\n\nconst computeJustifyContent = value => {\n value = value === 'left' ? 'start' : value === 'right' ? 'end' : value;\n return `justify-content-${value}`;\n};\n\n// --- Props ---\n\nconst props = makePropsConfigurable({\n align: makeProp(PROP_TYPE_STRING),\n // Set to `true` if placing in a card header\n cardHeader: makeProp(PROP_TYPE_BOOLEAN, false),\n fill: makeProp(PROP_TYPE_BOOLEAN, false),\n justified: makeProp(PROP_TYPE_BOOLEAN, false),\n pills: makeProp(PROP_TYPE_BOOLEAN, false),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n tabs: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'ul')\n}, NAME_NAV);\n\n// --- Main component ---\n\n// @vue/component\nconst BNav = /*#__PURE__*/extend({\n name: NAME_NAV,\n functional: true,\n props,\n render(h, _ref) {\n let {\n props,\n data,\n children\n } = _ref;\n const {\n tabs,\n pills,\n align,\n cardHeader\n } = props;\n return h(props.tag, mergeData(data, {\n staticClass: 'nav',\n class: {\n 'nav-tabs': tabs,\n 'nav-pills': pills && !tabs,\n 'card-header-tabs': cardHeader && tabs,\n 'card-header-pills': cardHeader && pills && !tabs,\n 'nav-fill': props.fill,\n 'nav-justified': props.justified,\n [computeJustifyContent(align)]: align,\n small: props.small\n }\n }), children);\n }\n});\n\nexport { BNav, props };\n","import { extend, COMPONENT_UID_KEY, REF_FOR_KEY } from '../../vue';\nimport { NAME_TAB_BUTTON_HELPER, NAME_TABS } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { EVENT_NAME_CLICK, EVENT_NAME_FIRST, EVENT_NAME_PREV, EVENT_NAME_LAST, EVENT_NAME_NEXT, EVENT_NAME_CHANGED, EVENT_NAME_ACTIVATE_TAB } from '../../constants/events';\nimport { CODE_SPACE, CODE_UP, CODE_LEFT, CODE_HOME, CODE_DOWN, CODE_RIGHT, CODE_END } from '../../constants/key-codes';\nimport { PROP_TYPE_NUMBER, PROP_TYPE_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_ARRAY_OBJECT_STRING } from '../../constants/props';\nimport { SLOT_NAME_TITLE, SLOT_NAME_TABS_START, SLOT_NAME_TABS_END, SLOT_NAME_EMPTY } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { BvEvent } from '../../utils/bv-event.class';\nimport { attemptFocus, selectAll, requestAF } from '../../utils/dom';\nimport { stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isEvent } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { mathMax } from '../../utils/math';\nimport { makeModelMixin } from '../../utils/model';\nimport { toInteger } from '../../utils/number';\nimport { omit, sortKeys } from '../../utils/object';\nimport { observeDom } from '../../utils/observe-dom';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { stableSort } from '../../utils/stable-sort';\nimport { props as props$2, idMixin } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BLink } from '../link/link';\nimport { props as props$1, BNav } from '../nav/nav';\n\n// --- Constants ---\n\nconst {\n mixin: modelMixin,\n props: modelProps,\n prop: MODEL_PROP_NAME,\n event: MODEL_EVENT_NAME\n} = makeModelMixin('value', {\n type: PROP_TYPE_NUMBER\n});\n\n// --- Helper methods ---\n\n// Filter function to filter out disabled tabs\nconst notDisabled = tab => !tab.disabled;\n\n// --- Helper components ---\n\n// @vue/component\nconst BVTabButton = /*#__PURE__*/extend({\n name: NAME_TAB_BUTTON_HELPER,\n inject: {\n getBvTabs: {\n default: /* istanbul ignore next */() => () => ({})\n }\n },\n props: {\n controls: makeProp(PROP_TYPE_STRING),\n id: makeProp(PROP_TYPE_STRING),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n posInSet: makeProp(PROP_TYPE_NUMBER),\n setSize: makeProp(PROP_TYPE_NUMBER),\n // Reference to the child instance\n tab: makeProp(),\n tabIndex: makeProp(PROP_TYPE_NUMBER)\n },\n computed: {\n bvTabs() {\n return this.getBvTabs();\n }\n },\n methods: {\n focus() {\n attemptFocus(this.$refs.link);\n },\n handleEvent(event) {\n /* istanbul ignore next */\n if (this.tab.disabled) {\n return;\n }\n const {\n type,\n keyCode,\n shiftKey\n } = event;\n if (type === 'click') {\n stopEvent(event);\n this.$emit(EVENT_NAME_CLICK, event);\n } else if (type === 'keydown' && keyCode === CODE_SPACE) {\n // For ARIA tabs the SPACE key will also trigger a click/select\n // Even with keyboard navigation disabled, SPACE should \"click\" the button\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/4323\n stopEvent(event);\n this.$emit(EVENT_NAME_CLICK, event);\n } else if (type === 'keydown' && !this.noKeyNav) {\n // For keyboard navigation\n if ([CODE_UP, CODE_LEFT, CODE_HOME].indexOf(keyCode) !== -1) {\n stopEvent(event);\n if (shiftKey || keyCode === CODE_HOME) {\n this.$emit(EVENT_NAME_FIRST, event);\n } else {\n this.$emit(EVENT_NAME_PREV, event);\n }\n } else if ([CODE_DOWN, CODE_RIGHT, CODE_END].indexOf(keyCode) !== -1) {\n stopEvent(event);\n if (shiftKey || keyCode === CODE_END) {\n this.$emit(EVENT_NAME_LAST, event);\n } else {\n this.$emit(EVENT_NAME_NEXT, event);\n }\n }\n }\n }\n },\n render(h) {\n const {\n id,\n tabIndex,\n setSize,\n posInSet,\n controls,\n handleEvent\n } = this;\n const {\n title,\n localActive,\n disabled,\n titleItemClass,\n titleLinkClass,\n titleLinkAttributes\n } = this.tab;\n const $link = h(BLink, {\n staticClass: 'nav-link',\n class: [{\n active: localActive && !disabled,\n disabled\n }, titleLinkClass,\n // Apply `activeNavItemClass` styles when the tab is active\n localActive ? this.bvTabs.activeNavItemClass : null],\n props: {\n disabled\n },\n attrs: {\n ...titleLinkAttributes,\n id,\n role: 'tab',\n // Roving tab index when keynav enabled\n tabindex: tabIndex,\n 'aria-selected': localActive && !disabled ? 'true' : 'false',\n 'aria-setsize': setSize,\n 'aria-posinset': posInSet,\n 'aria-controls': controls\n },\n on: {\n click: handleEvent,\n keydown: handleEvent\n },\n ref: 'link'\n }, [this.tab.normalizeSlot(SLOT_NAME_TITLE) || title]);\n return h('li', {\n staticClass: 'nav-item',\n class: [titleItemClass],\n attrs: {\n role: 'presentation'\n }\n }, [$link]);\n }\n});\n\n// --- Props ---\n\nconst navProps = omit(props$1, ['tabs', 'cardHeader']);\nconst props = makePropsConfigurable(sortKeys({\n ...props$2,\n ...modelProps,\n ...navProps,\n // Only applied to the currently active ``\n activeNavItemClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // Only applied to the currently active ``\n // This prop is sniffed by the `` child\n activeTabClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n contentClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n // Synonym for 'bottom'\n end: makeProp(PROP_TYPE_BOOLEAN, false),\n // This prop is sniffed by the `` child\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n navClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n navWrapperClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n noFade: makeProp(PROP_TYPE_BOOLEAN, false),\n noKeyNav: makeProp(PROP_TYPE_BOOLEAN, false),\n noNavStyle: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}), NAME_TABS);\n\n// --- Main component ---\n\n// @vue/component\nconst BTabs = /*#__PURE__*/extend({\n name: NAME_TABS,\n mixins: [idMixin, modelMixin, normalizeSlotMixin],\n provide() {\n return {\n getBvTabs: () => this\n };\n },\n props,\n data() {\n return {\n // Index of current tab\n currentTab: toInteger(this[MODEL_PROP_NAME], -1),\n // Array of direct child `` instances, in DOM order\n tabs: [],\n // Array of child instances registered (for triggering reactive updates)\n registeredTabs: []\n };\n },\n computed: {\n fade() {\n // This computed prop is sniffed by the tab child\n return !this.noFade;\n }\n },\n watch: {\n [MODEL_PROP_NAME](newValue, oldValue) {\n if (newValue !== oldValue) {\n newValue = toInteger(newValue, -1);\n oldValue = toInteger(oldValue, 0);\n const $tab = this.tabs[newValue];\n if ($tab && !$tab.disabled) {\n this.activateTab($tab);\n } else {\n // Try next or prev tabs\n if (newValue < oldValue) {\n this.previousTab();\n } else {\n this.nextTab();\n }\n }\n }\n },\n currentTab(newValue) {\n let index = -1;\n\n // Ensure only one tab is active at most\n this.tabs.forEach(($tab, i) => {\n if (i === newValue && !$tab.disabled) {\n $tab.localActive = true;\n index = i;\n } else {\n $tab.localActive = false;\n }\n });\n\n // Update the v-model\n this.$emit(MODEL_EVENT_NAME, index);\n },\n // If tabs added, removed, or re-ordered, we emit a `changed` event\n tabs(newValue, oldValue) {\n // We use `_uid` instead of `safeId()`, as the later is changed in a `$nextTick()`\n // if no explicit ID is provided, causing duplicate emits\n if (!looseEqual(newValue.map($tab => $tab[COMPONENT_UID_KEY]), oldValue.map($tab => $tab[COMPONENT_UID_KEY]))) {\n // In a `$nextTick()` to ensure `currentTab` has been set first\n this.$nextTick(() => {\n // We emit shallow copies of the new and old arrays of tabs,\n // to prevent users from potentially mutating the internal arrays\n this.$emit(EVENT_NAME_CHANGED, newValue.slice(), oldValue.slice());\n });\n }\n },\n // Each `` will register/unregister itself\n // We use this to detect when tabs are added/removed\n // to trigger the update of the tabs\n registeredTabs() {\n this.updateTabs();\n }\n },\n created() {\n // Create private non-reactive props\n this.$_observer = null;\n },\n mounted() {\n this.setObserver(true);\n },\n beforeDestroy() {\n this.setObserver(false);\n // Ensure no references to child instances exist\n this.tabs = [];\n },\n methods: {\n registerTab($tab) {\n if (!arrayIncludes(this.registeredTabs, $tab)) {\n this.registeredTabs.push($tab);\n }\n },\n unregisterTab($tab) {\n this.registeredTabs = this.registeredTabs.slice().filter($t => $t !== $tab);\n },\n // DOM observer is needed to detect changes in order of tabs\n setObserver() {\n let on = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.$_observer && this.$_observer.disconnect();\n this.$_observer = null;\n if (on) {\n /* istanbul ignore next: difficult to test mutation observer in JSDOM */\n const handler = () => {\n this.$nextTick(() => {\n requestAF(() => {\n this.updateTabs();\n });\n });\n };\n\n // Watch for changes to `` sub components\n this.$_observer = observeDom(this.$refs.content, handler, {\n childList: true,\n subtree: false,\n attributes: true,\n attributeFilter: ['id']\n });\n }\n },\n getTabs() {\n const $tabs = this.registeredTabs;\n // Dropped intentionally\n // .filter(\n // $tab => $tab.$children.filter($t => $t && $t._isTab).length === 0\n // )\n\n // DOM Order of Tabs\n let order = [];\n /* istanbul ignore next: too difficult to test */\n if (IS_BROWSER && $tabs.length > 0) {\n // We rely on the DOM when mounted to get the \"true\" order of the `` children\n // `querySelectorAll()` always returns elements in document order, regardless of\n // order specified in the selector\n const selector = $tabs.map($tab => `#${$tab.safeId()}`).join(', ');\n order = selectAll(selector, this.$el).map($el => $el.id).filter(identity);\n }\n\n // Stable sort keeps the original order if not found in the `order` array,\n // which will be an empty array before mount\n return stableSort($tabs, (a, b) => order.indexOf(a.safeId()) - order.indexOf(b.safeId()));\n },\n updateTabs() {\n const $tabs = this.getTabs();\n\n // Find last active non-disabled tab in current tabs\n // We trust tab state over `currentTab`, in case tabs were added/removed/re-ordered\n let tabIndex = $tabs.indexOf($tabs.slice().reverse().find($tab => $tab.localActive && !$tab.disabled));\n\n // Else try setting to `currentTab`\n if (tabIndex < 0) {\n const {\n currentTab\n } = this;\n if (currentTab >= $tabs.length) {\n // Handle last tab being removed, so find the last non-disabled tab\n tabIndex = $tabs.indexOf($tabs.slice().reverse().find(notDisabled));\n } else if ($tabs[currentTab] && !$tabs[currentTab].disabled) {\n // Current tab is not disabled\n tabIndex = currentTab;\n }\n }\n\n // Else find first non-disabled tab in current tabs\n if (tabIndex < 0) {\n tabIndex = $tabs.indexOf($tabs.find(notDisabled));\n }\n\n // Ensure only one tab is active at a time\n $tabs.forEach(($tab, index) => {\n $tab.localActive = index === tabIndex;\n });\n this.tabs = $tabs;\n this.currentTab = tabIndex;\n },\n // Find a button that controls a tab, given the tab reference\n // Returns the button vm instance\n getButtonForTab($tab) {\n return (this.$refs.buttons || []).find($btn => $btn.tab === $tab);\n },\n // Force a button to re-render its content, given a `` instance\n // Called by `` on `update()`\n updateButton($tab) {\n const $button = this.getButtonForTab($tab);\n if ($button && $button.$forceUpdate) {\n $button.$forceUpdate();\n }\n },\n // Activate a tab given a `` instance\n // Also accessed by ``\n activateTab($tab) {\n const {\n currentTab,\n tabs: $tabs\n } = this;\n let result = false;\n if ($tab) {\n const index = $tabs.indexOf($tab);\n if (index !== currentTab && index > -1 && !$tab.disabled) {\n const tabEvent = new BvEvent(EVENT_NAME_ACTIVATE_TAB, {\n cancelable: true,\n vueTarget: this,\n componentId: this.safeId()\n });\n this.$emit(tabEvent.type, index, currentTab, tabEvent);\n if (!tabEvent.defaultPrevented) {\n this.currentTab = index;\n result = true;\n }\n }\n }\n\n // Couldn't set tab, so ensure v-model is up to date\n /* istanbul ignore next: should rarely happen */\n if (!result && this[MODEL_PROP_NAME] !== currentTab) {\n this.$emit(MODEL_EVENT_NAME, currentTab);\n }\n return result;\n },\n // Deactivate a tab given a `` instance\n // Accessed by ``\n deactivateTab($tab) {\n if ($tab) {\n // Find first non-disabled tab that isn't the one being deactivated\n // If no tabs are available, then don't deactivate current tab\n return this.activateTab(this.tabs.filter($t => $t !== $tab).find(notDisabled));\n }\n /* istanbul ignore next: should never/rarely happen */\n return false;\n },\n // Focus a tab button given its `` instance\n focusButton($tab) {\n // Wrap in `$nextTick()` to ensure DOM has completed rendering\n this.$nextTick(() => {\n attemptFocus(this.getButtonForTab($tab));\n });\n },\n // Emit a click event on a specified `` component instance\n emitTabClick(tab, event) {\n if (isEvent(event) && tab && tab.$emit && !tab.disabled) {\n tab.$emit(EVENT_NAME_CLICK, event);\n }\n },\n // Click handler\n clickTab($tab, event) {\n this.activateTab($tab);\n this.emitTabClick($tab, event);\n },\n // Move to first non-disabled tab\n firstTab(focus) {\n const $tab = this.tabs.find(notDisabled);\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to previous non-disabled tab\n previousTab(focus) {\n const currentIndex = mathMax(this.currentTab, 0);\n const $tab = this.tabs.slice(0, currentIndex).reverse().find(notDisabled);\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to next non-disabled tab\n nextTab(focus) {\n const currentIndex = mathMax(this.currentTab, -1);\n const $tab = this.tabs.slice(currentIndex + 1).find(notDisabled);\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n },\n // Move to last non-disabled tab\n lastTab(focus) {\n const $tab = this.tabs.slice().reverse().find(notDisabled);\n if (this.activateTab($tab) && focus) {\n this.focusButton($tab);\n this.emitTabClick($tab, focus);\n }\n }\n },\n render(h) {\n const {\n align,\n end,\n fill,\n firstTab,\n justified,\n lastTab,\n nextTab,\n noKeyNav,\n noNavStyle,\n pills,\n previousTab,\n small,\n tabs: $tabs\n } = this;\n\n // Currently active tab\n const $activeTab = $tabs.find($tab => $tab.localActive && !$tab.disabled);\n\n // Tab button to allow focusing when no active tab found (keynav only)\n const $fallbackTab = $tabs.find($tab => !$tab.disabled);\n\n // For each `` found create the tab buttons\n const $buttons = $tabs.map(($tab, index) => {\n const {\n safeId\n } = $tab;\n\n // Ensure at least one tab button is focusable when keynav enabled (if possible)\n let tabIndex = null;\n if (!noKeyNav) {\n // Buttons are not in tab index unless active, or a fallback tab\n tabIndex = -1;\n if ($tab === $activeTab || !$activeTab && $tab === $fallbackTab) {\n // Place tab button in tab sequence\n tabIndex = null;\n }\n }\n return h(BVTabButton, {\n props: {\n controls: safeId ? safeId() : null,\n id: $tab.controlledBy || (safeId ? safeId(`_BV_tab_button_`) : null),\n noKeyNav,\n posInSet: index + 1,\n setSize: $tabs.length,\n tab: $tab,\n tabIndex\n },\n on: {\n [EVENT_NAME_CLICK]: event => {\n this.clickTab($tab, event);\n },\n [EVENT_NAME_FIRST]: firstTab,\n [EVENT_NAME_PREV]: previousTab,\n [EVENT_NAME_NEXT]: nextTab,\n [EVENT_NAME_LAST]: lastTab\n },\n key: $tab[COMPONENT_UID_KEY] || index,\n ref: 'buttons',\n // Needed to make `this.$refs.buttons` an array\n [REF_FOR_KEY]: true\n });\n });\n let $nav = h(BNav, {\n class: this.navClass,\n attrs: {\n role: 'tablist',\n id: this.safeId('_BV_tab_controls_')\n },\n props: {\n fill,\n justified,\n align,\n tabs: !noNavStyle && !pills,\n pills: !noNavStyle && pills,\n small\n },\n ref: 'nav'\n }, [this.normalizeSlot(SLOT_NAME_TABS_START) || h(), $buttons, this.normalizeSlot(SLOT_NAME_TABS_END) || h()]);\n $nav = h('div', {\n class: this.navWrapperClass,\n key: 'bv-tabs-nav'\n }, [$nav]);\n const $children = this.normalizeSlot() || [];\n let $empty = h();\n if ($children.length === 0) {\n $empty = h('div', {\n class: ['tab-pane', 'active'],\n key: 'bv-empty-tab'\n }, this.normalizeSlot(SLOT_NAME_EMPTY));\n }\n const $content = h('div', {\n staticClass: 'tab-content',\n class: this.contentClass,\n attrs: {\n id: this.safeId('_BV_tab_container_')\n },\n key: 'bv-content',\n ref: 'content'\n }, [$children, $empty]);\n\n // Render final output\n return h(this.tag, {\n staticClass: 'tabs',\n attrs: {\n id: this.safeId()\n }\n }, [end ? $content : h(), $nav, end ? h() : $content]);\n }\n});\n\nexport { BTabs, props };\n","import { BTabs } from '../../../../vendor/bootstrap-vue/src/components/tabs/tabs';\nimport { tabsButtonDefaults } from '../../../../utils/constants';\nimport GlButton from '../../button/button';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nconst validatorHelper = obj => Object.keys(obj).every(val => val === 'text' || val === 'attributes');\nvar script = {\n name: 'GlTabs',\n components: {\n BTabs,\n GlButton\n },\n inheritAttrs: false,\n props: {\n actionPrimary: {\n type: Object,\n required: false,\n default: null,\n validator: obj => validatorHelper(obj)\n },\n actionSecondary: {\n type: Object,\n required: false,\n default: null,\n validator: obj => validatorHelper(obj)\n },\n actionTertiary: {\n type: Object,\n required: false,\n default: null,\n validator: obj => validatorHelper(obj)\n },\n contentClass: {\n type: [String, Array, Object],\n required: false,\n default: null\n },\n navClass: {\n type: [String, Array, Object],\n required: false,\n default: null\n },\n justified: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Sync active tab with query string parameters. Allows for deep linking into specific tabs.\n */\n syncActiveTabWithQueryParams: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Name to use for query string parameter.\n */\n queryParamName: {\n type: String,\n required: false,\n default: 'tab'\n },\n value: {\n type: Number,\n required: false,\n default: 0\n }\n },\n data() {\n return {\n activeTabIndex: 0\n };\n },\n computed: {\n hasActions() {\n return [this.actionPrimary, this.actionSecondary, this.actionTertiary].some(Boolean);\n },\n listeners() {\n return {\n ...this.$listeners,\n input: this.handleInput\n };\n }\n },\n watch: {\n value: {\n handler(newValue) {\n if (this.activeTabIndex !== newValue) {\n this.activeTabIndex = newValue;\n }\n },\n immediate: true\n }\n },\n mounted() {\n if (this.syncActiveTabWithQueryParams) {\n this.syncActiveTabFromQueryParams();\n window.addEventListener('popstate', this.syncActiveTabFromQueryParams);\n }\n\n // Because we are manually binding `value` attribute to `b-tabs` the `input`\n // event is no longer automatically fired when the component is mounted.\n // To maintain parity with original `b-tabs` functionality\n // we manually fire the `input` event when the component is mounted.\n this.$emit('input', this.activeTabIndex);\n },\n destroyed() {\n window.removeEventListener('popstate', this.syncActiveTabFromQueryParams);\n },\n methods: {\n buttonBinding(prop, name) {\n if (!prop.attributes) {\n return tabsButtonDefaults[name];\n }\n return prop.attributes;\n },\n primary() {\n this.$emit('primary');\n },\n secondary() {\n this.$emit('secondary');\n },\n tertiary() {\n this.$emit('tertiary');\n },\n /**\n * When the query parameter is updated, update the active tab to match.\n */\n async syncActiveTabFromQueryParams() {\n await this.$nextTick();\n const queryParamValue = this.getQueryParamValue();\n const tabIndexToActivate = this.getTabs().findIndex((tab, tabIndex) => this.getTabQueryParamValue(tabIndex) === queryParamValue);\n this.activeTabIndex = tabIndexToActivate !== -1 ? tabIndexToActivate : 0;\n },\n /**\n * Returns a list of all instances associated with this tab control.\n */\n getTabs() {\n return this.$refs.bTabs.getTabs();\n },\n /**\n * Get the value of the query param as defined by the `queryParamName` prop.\n */\n getQueryParamValue() {\n const searchParams = new URLSearchParams(window.location.search);\n return searchParams.get(this.queryParamName);\n },\n /**\n * Set the value of the query param as defined by the `queryParamName` prop.\n * This method does nothing if the query param is already up to date.\n */\n setQueryParamValueIfNecessary(tabIndex) {\n const currentQueryParamValue = this.getQueryParamValue();\n const newQueryParamValue = this.getTabQueryParamValue(tabIndex);\n\n // If the current query parameter is already up-to-date,\n // avoid creating a duplicate history entry.\n if (tabIndex === 0 && !currentQueryParamValue || tabIndex !== 0 && currentQueryParamValue === newQueryParamValue) {\n return;\n }\n const searchParams = new URLSearchParams(window.location.search);\n searchParams.set(this.queryParamName, newQueryParamValue);\n window.history.pushState({}, '', `${window.location.pathname}?${searchParams.toString()}`);\n },\n /**\n * Returns the query param value for a tab.\n * Defaults to the tab index unless the `query-param-value` attribute is set.\n */\n getTabQueryParamValue(tabIndex) {\n const tab = this.getTabs()[tabIndex];\n return (tab === null || tab === void 0 ? void 0 : tab.$attrs['query-param-value']) || tabIndex.toString();\n },\n /**\n * Event handler for `input` event.\n */\n handleInput(tabIndex) {\n this.$emit('input', tabIndex);\n this.activeTabIndex = tabIndex;\n if (this.syncActiveTabWithQueryParams) {\n this.setQueryParamValueIfNecessary(tabIndex);\n }\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-tabs',_vm._g(_vm._b({ref:\"bTabs\",staticClass:\"gl-tabs\",attrs:{\"no-nav-style\":true,\"no-fade\":true,\"active-nav-item-class\":\"gl-tab-nav-item-active\",\"content-class\":[_vm.contentClass, 'gl-tab-content'],\"nav-class\":[_vm.navClass, 'gl-tabs-nav'],\"justified\":_vm.justified,\"value\":_vm.activeTabIndex},scopedSlots:_vm._u([_vm._l((Object.keys(_vm.$slots)),function(slot){return {key:slot,fn:function(){return [_vm._t(slot)]},proxy:true}}),(_vm.hasActions)?{key:\"tabs-start\",fn:function(){return [_c('div',{staticClass:\"gl-actions-tabs-start\",attrs:{\"data-testid\":\"actions-tabs-start\"}},[(_vm.actionPrimary)?_c('gl-button',_vm._b({attrs:{\"data-testid\":\"action-primary\"},on:{\"click\":_vm.primary}},'gl-button',_vm.buttonBinding(_vm.actionPrimary, 'actionPrimary'),false),[_vm._v(\"\\n \"+_vm._s(_vm.actionPrimary.text)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.actionSecondary)?_c('gl-button',_vm._b({attrs:{\"data-testid\":\"action-secondary\"},on:{\"click\":_vm.secondary}},'gl-button',_vm.buttonBinding(_vm.actionSecondary, 'actionSecondary'),false),[_vm._v(\"\\n \"+_vm._s(_vm.actionSecondary.text)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.actionTertiary)?_c('gl-button',_vm._b({attrs:{\"data-testid\":\"action-tertiary\"},on:{\"click\":_vm.tertiary}},'gl-button',_vm.buttonBinding(_vm.actionTertiary, 'actionTertiary'),false),[_vm._v(\"\\n \"+_vm._s(_vm.actionTertiary.text)+\"\\n \")]):_vm._e()],1)]},proxy:true}:null,(_vm.hasActions)?{key:\"tabs-end\",fn:function(){return [_c('div',{staticClass:\"gl-actions-tabs-end\",attrs:{\"data-testid\":\"actions-tabs-end\"}},[(_vm.actionPrimary)?_c('gl-button',_vm._b({attrs:{\"data-testid\":\"action-primary\"},on:{\"click\":_vm.primary}},'gl-button',_vm.buttonBinding(_vm.actionPrimary, 'actionPrimary'),false),[_vm._v(\"\\n \"+_vm._s(_vm.actionPrimary.text)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.actionSecondary)?_c('gl-button',_vm._b({attrs:{\"data-testid\":\"action-secondary\"},on:{\"click\":_vm.secondary}},'gl-button',_vm.buttonBinding(_vm.actionSecondary, 'actionSecondary'),false),[_vm._v(\"\\n \"+_vm._s(_vm.actionSecondary.text)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.actionTertiary)?_c('gl-button',_vm._b({attrs:{\"data-testid\":\"action-tertiary\"},on:{\"click\":_vm.tertiary}},'gl-button',_vm.buttonBinding(_vm.actionTertiary, 'actionTertiary'),false),[_vm._v(\"\\n \"+_vm._s(_vm.actionTertiary.text)+\"\\n \")]):_vm._e()],1)]},proxy:true}:null],null,true)},'b-tabs',_vm.$attrs,false),_vm.listeners))};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","import { extend } from '../../vue';\nimport { NAME_TAB } from '../../constants/components';\nimport { MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING, PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_OBJECT } from '../../constants/props';\nimport { SLOT_NAME_TITLE } from '../../constants/slots';\nimport { sortKeys } from '../../utils/object';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\nimport { props as props$1, idMixin } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BVTransition } from '../transition/bv-transition';\n\n// --- Constants ---\n\nconst MODEL_PROP_NAME_ACTIVE = 'active';\nconst MODEL_EVENT_NAME_ACTIVE = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_ACTIVE;\n\n// --- Props ---\n\nconst props = makePropsConfigurable(sortKeys({\n ...props$1,\n [MODEL_PROP_NAME_ACTIVE]: makeProp(PROP_TYPE_BOOLEAN, false),\n buttonId: makeProp(PROP_TYPE_STRING),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n noBody: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n title: makeProp(PROP_TYPE_STRING),\n // Sniffed by `` and added to nav `li.nav-item`\n titleItemClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n titleLinkAttributes: makeProp(PROP_TYPE_OBJECT),\n // Sniffed by `` and added to nav `a.nav-link`\n titleLinkClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n}), NAME_TAB);\n\n// --- Main component ---\n\n// @vue/component\nconst BTab = /*#__PURE__*/extend({\n name: NAME_TAB,\n mixins: [idMixin, normalizeSlotMixin],\n inject: {\n getBvTabs: {\n default: () => () => ({})\n }\n },\n props,\n data() {\n return {\n localActive: this[MODEL_PROP_NAME_ACTIVE] && !this.disabled\n };\n },\n computed: {\n bvTabs() {\n return this.getBvTabs();\n },\n // For parent sniffing of child\n _isTab() {\n return true;\n },\n tabClasses() {\n const {\n localActive: active,\n disabled\n } = this;\n return [{\n active,\n disabled,\n 'card-body': this.bvTabs.card && !this.noBody\n },\n // Apply `activeTabClass` styles when this tab is active\n active ? this.bvTabs.activeTabClass : null];\n },\n controlledBy() {\n return this.buttonId || this.safeId('__BV_tab_button__');\n },\n computedNoFade() {\n return !(this.bvTabs.fade || false);\n },\n computedLazy() {\n return this.bvTabs.lazy || this.lazy;\n }\n },\n watch: {\n [MODEL_PROP_NAME_ACTIVE](newValue, oldValue) {\n if (newValue !== oldValue) {\n if (newValue) {\n // If activated post mount\n this.activate();\n } else {\n /* istanbul ignore next */\n if (!this.deactivate()) {\n // Tab couldn't be deactivated, so we reset the synced active prop\n // Deactivation will fail if no other tabs to activate\n this.$emit(MODEL_EVENT_NAME_ACTIVE, this.localActive);\n }\n }\n }\n },\n disabled(newValue, oldValue) {\n if (newValue !== oldValue) {\n const {\n firstTab\n } = this.bvTabs;\n if (newValue && this.localActive && firstTab) {\n this.localActive = false;\n firstTab();\n }\n }\n },\n localActive(newValue) {\n // Make `active` prop work with `.sync` modifier\n this.$emit(MODEL_EVENT_NAME_ACTIVE, newValue);\n }\n },\n mounted() {\n // Inform `` of our presence\n this.registerTab();\n },\n updated() {\n // Force the tab button content to update (since slots are not reactive)\n // Only done if we have a title slot, as the title prop is reactive\n const {\n updateButton\n } = this.bvTabs;\n if (updateButton && this.hasNormalizedSlot(SLOT_NAME_TITLE)) {\n updateButton(this);\n }\n },\n beforeDestroy() {\n // Inform `` of our departure\n this.unregisterTab();\n },\n methods: {\n // Private methods\n registerTab() {\n // Inform `` of our presence\n const {\n registerTab\n } = this.bvTabs;\n if (registerTab) {\n registerTab(this);\n }\n },\n unregisterTab() {\n // Inform `` of our departure\n const {\n unregisterTab\n } = this.bvTabs;\n if (unregisterTab) {\n unregisterTab(this);\n }\n },\n // Public methods\n activate() {\n // Not inside a `` component or tab is disabled\n const {\n activateTab\n } = this.bvTabs;\n return activateTab && !this.disabled ? activateTab(this) : false;\n },\n deactivate() {\n // Not inside a `` component or not active to begin with\n const {\n deactivateTab\n } = this.bvTabs;\n return deactivateTab && this.localActive ? deactivateTab(this) : false;\n }\n },\n render(h) {\n const {\n localActive\n } = this;\n const $content = h(this.tag, {\n staticClass: 'tab-pane',\n class: this.tabClasses,\n directives: [{\n name: 'show',\n value: localActive\n }],\n attrs: {\n role: 'tabpanel',\n id: this.safeId(),\n 'aria-hidden': localActive ? 'false' : 'true',\n 'aria-labelledby': this.controlledBy || null\n },\n ref: 'panel'\n },\n // Render content lazily if requested\n [localActive || !this.computedLazy ? this.normalizeSlot() : h()]);\n return h(BVTransition, {\n props: {\n mode: 'out-in',\n noFade: this.computedNoFade\n }\n }, [$content]);\n }\n});\n\nexport { BTab, props };\n","import isPlainObject from 'lodash/isPlainObject';\nimport { BTab } from '../../../../vendor/bootstrap-vue/src/components/tabs/tab';\nimport { DEFAULT_TAB_TITLE_LINK_CLASS } from '../constants';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nvar script = {\n name: 'GlTab',\n components: {\n BTab\n },\n inheritAttrs: false,\n props: {\n titleLinkClass: {\n type: [String, Array, Object],\n required: false,\n default: ''\n },\n /**\n * Query string parameter value to use when `gl-tabs` `sync-active-tab-with-query-params` prop is set to `true`.\n */\n queryParamValue: {\n type: String,\n required: false,\n default: null\n }\n },\n computed: {\n linkClass() {\n const {\n titleLinkClass\n } = this;\n if (Array.isArray(titleLinkClass)) {\n return [...titleLinkClass, DEFAULT_TAB_TITLE_LINK_CLASS];\n }\n if (isPlainObject(titleLinkClass)) {\n return {\n ...titleLinkClass,\n [DEFAULT_TAB_TITLE_LINK_CLASS]: true\n };\n }\n return `${titleLinkClass} ${DEFAULT_TAB_TITLE_LINK_CLASS}`.trim();\n }\n }\n};\n\n/* script */\nconst __vue_script__ = script;\n\n/* template */\nvar __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-tab',_vm._g(_vm._b({attrs:{\"title-link-class\":_vm.linkClass,\"query-param-value\":_vm.queryParamValue},scopedSlots:_vm._u([_vm._l((Object.keys(_vm.$slots)),function(slot){return {key:slot,fn:function(){return [_vm._t(slot)]},proxy:true}})],null,true)},'b-tab',_vm.$attrs,false),_vm.$listeners))};\nvar __vue_staticRenderFns__ = [];\n\n /* style */\n const __vue_inject_styles__ = undefined;\n /* scoped */\n const __vue_scope_id__ = undefined;\n /* module identifier */\n const __vue_module_identifier__ = undefined;\n /* functional template */\n const __vue_is_functional_template__ = false;\n /* style inject */\n \n /* style inject SSR */\n \n /* style inject shadow dom */\n \n\n \n const __vue_component__ = __vue_normalize__(\n { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },\n __vue_inject_styles__,\n __vue_script__,\n __vue_scope_id__,\n __vue_is_functional_template__,\n __vue_module_identifier__,\n false,\n undefined,\n undefined,\n undefined\n );\n\nexport default __vue_component__;\n","const DEFAULT_TAB_TITLE_LINK_CLASS = 'gl-tab-nav-item';\n\nexport { DEFAULT_TAB_TITLE_LINK_CLASS };\n","import { normalizeData as normalizeDataFOSS } from '~/repository/utils/commit';\n\nexport function normalizeData(data, path) {\n return normalizeDataFOSS(data, path, (d) => ({\n lockLabel: d.lock_label || false,\n }));\n}\n","import { joinPaths } from '~/lib/utils/url_utility';\n\nexport function normalizeData(data, path, extra = () => {}) {\n return data.map((d) => ({\n sha: d.commit.id,\n message: d.commit.message,\n titleHtml: d.commit_title_html,\n committedDate: d.commit.committed_date,\n commitPath: d.commit_path,\n fileName: d.file_name,\n filePath: joinPaths(path, d.file_name),\n __typename: 'LogTreeCommit',\n ...extra(d),\n }));\n}\n"],"sourceRoot":""}