{"version":3,"sources":["webpack:///./performance/constants.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/mixins/form-custom.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/form-radio/form-radio-group.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/components/base/form/form_radio_group/form_radio_group.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/components/utilities/truncate/truncate.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/utils/loose-index-of.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/form-checkbox/form-checkbox.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/mixins/form-text.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/form-radio/form-radio.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/components/base/form/form_radio/form_radio.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/lodash/isArrayLikeObject.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/mixins/form-validity.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/directives/safe_html/constants.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/directives/safe_html/safe_html.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/mixins/form-selection.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/mixins/form-options.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/lodash/_cloneArrayBuffer.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/mixins/form-control.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/lodash/_cloneTypedArray.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/lodash/_createAssigner.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/mixins/form-size.js","webpack:///./blob/components/eventhub.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/lodash/_cloneBuffer.js","webpack:///./performance/utils.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/mixins/form-radio-check-group.js","webpack:///./vue_shared/mixins/gl_feature_flags_mixin.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/mixins/form-radio-check.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/@gitlab/ui/dist/directives/resize_observer/resize_observer.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/lodash/_copyObject.js","webpack:////build/gitlab/src/gitlab-foss/node_modules/lodash/_initCloneObject.js"],"names":["PERFORMANCE_TYPE_MARK","PERFORMANCE_TYPE_MEASURE","SNIPPET_MARK_VIEW_APP_START","SNIPPET_MARK_EDIT_APP_START","SNIPPET_MARK_BLOBS_CONTENT","SNIPPET_MEASURE_BLOBS_CONTENT","WEBIDE_MARK_APP_START","WEBIDE_MARK_FILE_CLICKED","WEBIDE_MARK_FILE_FINISH","WEBIDE_MARK_REPO_EDITOR_START","WEBIDE_MARK_REPO_EDITOR_FINISH","WEBIDE_MARK_FETCH_BRANCH_DATA_START","WEBIDE_MARK_FETCH_BRANCH_DATA_FINISH","WEBIDE_MARK_FETCH_FILE_DATA_START","WEBIDE_MARK_FETCH_FILE_DATA_FINISH","WEBIDE_MARK_FETCH_FILES_START","WEBIDE_MARK_FETCH_FILES_FINISH","WEBIDE_MARK_FETCH_PROJECT_DATA_START","WEBIDE_MARK_FETCH_PROJECT_DATA_FINISH","WEBIDE_MEASURE_FILE_AFTER_INTERACTION","WEBIDE_MEASURE_FETCH_PROJECT_DATA","WEBIDE_MEASURE_FETCH_BRANCH_DATA","WEBIDE_MEASURE_FETCH_FILE_DATA","WEBIDE_MEASURE_BEFORE_VUE","WEBIDE_MEASURE_REPO_EDITOR","WEBIDE_MEASURE_FETCH_FILES","MR_DIFFS_MARK_FILE_TREE_START","MR_DIFFS_MARK_FILE_TREE_END","MR_DIFFS_MARK_DIFF_FILES_START","MR_DIFFS_MARK_FIRST_DIFF_FILE_SHOWN","MR_DIFFS_MARK_DIFF_FILES_END","MR_DIFFS_MEASURE_FILE_TREE_DONE","MR_DIFFS_MEASURE_DIFF_FILES_DONE","PIPELINES_DETAIL_LINKS_MARK_CALCULATE_START","PIPELINES_DETAIL_LINKS_MARK_CALCULATE_END","PIPELINES_DETAIL_LINKS_MEASURE_CALCULATION","PIPELINES_DETAIL_LINK_DURATION","PIPELINES_DETAIL_LINKS_TOTAL","PIPELINES_DETAIL_LINKS_JOB_RATIO","REPO_BLOB_LOAD_VIEWER_START","REPO_BLOB_SWITCH_TO_VIEWER_START","REPO_BLOB_LOAD_VIEWER_FINISH","REPO_BLOB_LOAD_VIEWER","REPO_BLOB_SWITCH_VIEWER","DESIGN_MARK_APP_START","DESIGN_MEASURE_BEFORE_APP","DESIGN_MAIN_IMAGE_OUTPUT","props","plain","formCustomMixin","computed","this","BFormRadioGroup","name","mixins","getBvRadioGroup","isRadioGroup","model","options","__vue_script__","components","GlFormRadio","directives","SafeHtml","inheritAttrs","methods","e","$emit","__vue_component__","render","_vm","_h","$createElement","_c","_self","_g","_b","staticClass","attrs","on","onInput","onChange","$attrs","$listeners","_t","_v","_l","option","idx","key","value","disabled","rawName","expression","_s","text","staticRenderFns","undefined","POSITION","GlTooltip","GlResizeObserver","type","String","required","position","default","END","validator","Object","values","includes","withTooltip","Boolean","data","isTruncated","Math","floor","length","collapsibleWhitespaceChar","middleIndex","lastCharOfFirstIsCollapsibleWhitespace","test","charAt","firstCharOfLastIsCollapsibleWhitespace","first","slice","preventWhitespaceCollapse","watch","checkTruncationState","$refs","scrollWidth","offsetWidth","$options","START","isTooltipDisabled","arg","title","ref","MIDDLE","last","looseIndexOf","array","i","MODEL_EVENT_NAME_INDETERMINATE","switch","uncheckedValue","BFormCheckbox","inject","getBvGroup","from","computedLocalChecked","checked","isRadio","newValue","oldValue","setIndeterminate","$input","input","indeterminate","_ref","target","localChecked","index","concat","$nextTick","isGroup","bvGroup","state","mixin","modelMixin","modelProps","prop","MODEL_PROP_NAME","event","MODEL_EVENT_NAME","defaultValue","ariaInvalid","autocomplete","debounce","formatter","lazy","lazyFormatter","number","placeholder","plaintext","readonly","trim","formTextMixin","localValue","vModelValue","modifyValue","isRange","isColor","sizeFormClass","stateClass","stringifyValue","modifiedValue","clearDebounce","$_inputDebounceTimer","clearTimeout","force","arguments","hasFormatter","doUpdate","computedDebounce","setTimeout","composing","formattedValue","formatValue","defaultPrevented","propagation","updateValue","$el","BFormRadio","Number","$event","$scopedSlots","_e","isArrayLike","isObjectLike","module","exports","formValidityMixin","validity","cache","validationMessage","willValidate","setCustomValidity","checkValidity","reportValidity","sanitize","DEFAULT_CONFIG","RETURN_DOM_FRAGMENT","ALLOW_UNKNOWN_PROTOCOLS","FORBID_ATTR","FORBID_TAGS","transform","el","binding","_binding$arg","config","textContent","appendChild","SafeHtmlDirective","bind","update","unbind","formSelectionMixin","selectionStart","val","selectionEnd","selectionDirection","select","setSelectionRange","setRangeText","disabledField","htmlField","textField","valueField","formOptionsMixin","normalizeOptions","html","map","normalizeOption","Uint8Array","arrayBuffer","result","constructor","byteLength","set","autofocus","form","id","formControlMixin","handleAutofocus","cloneArrayBuffer","typedArray","isDeep","buffer","byteOffset","baseRest","isIterateeCall","assigner","object","sources","customizer","guard","source","size","formSizeMixin","createEventHub","freeExports","nodeType","freeModule","Buffer","root","allocUnsafe","copy","performanceMarkAndMeasure","mark","measures","window","requestAnimationFrame","performance","getEntriesByName","forEach","measure","start","end","PASS_DOWN_ATTRS","stacked","validated","formRadioCheckGroupMixin","safeId","h","optionComponent","$inputs","formOptions","domProps","class","groupClasses","computedAriaInvalid","role","tabindex","normalizeSlot","glFeatures","ariaLabel","ariaLabelledby","inline","formRadioCheckMixin","switches","computedName","groupName","computedState","isDisabled","isRequired","bvAttrs","computedForm","computedLocalCheckedWatcher","isInline","isSwitch","computedSize","$content","computedAttrs","isChecked","change","handleChange","$label","for","style","observer","attachObserver","resizeHandler","TypeError","ResizeObserver","entries","glResizeHandler","observe","detachObserver","_observer","unobserve","GlResizeObserverDirective","enabled","_ref2","assignValue","baseAssignValue","isNew","baseCreate","getPrototype","isPrototype"],"mappings":"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","file":"commons-pages.projects.blob.show-pages.projects.show-pages.projects.snippets.edit-pages.projects.sni-42df7d4c.e2ff6bbf.chunk.js","sourcesContent":["export const PERFORMANCE_TYPE_MARK = 'mark';\nexport const PERFORMANCE_TYPE_MEASURE = 'measure';\n\n//\n// SNIPPET namespace\n//\n\n// Marks\nexport const SNIPPET_MARK_VIEW_APP_START = 'snippet-view-app-start';\nexport const SNIPPET_MARK_EDIT_APP_START = 'snippet-edit-app-start';\nexport const SNIPPET_MARK_BLOBS_CONTENT = 'snippet-blobs-content-finished';\n\n// Measures\nexport const SNIPPET_MEASURE_BLOBS_CONTENT = 'snippet-blobs-content';\n\n//\n// WebIDE namespace\n//\n\n// Marks\nexport const WEBIDE_MARK_APP_START = 'webide-app-start';\nexport const WEBIDE_MARK_FILE_CLICKED = 'webide-file-clicked';\nexport const WEBIDE_MARK_FILE_FINISH = 'webide-file-finished';\nexport const WEBIDE_MARK_REPO_EDITOR_START = 'webide-init-editor-start';\nexport const WEBIDE_MARK_REPO_EDITOR_FINISH = 'webide-init-editor-finish';\nexport const WEBIDE_MARK_FETCH_BRANCH_DATA_START = 'webide-getBranchData-start';\nexport const WEBIDE_MARK_FETCH_BRANCH_DATA_FINISH = 'webide-getBranchData-finish';\nexport const WEBIDE_MARK_FETCH_FILE_DATA_START = 'webide-getFileData-start';\nexport const WEBIDE_MARK_FETCH_FILE_DATA_FINISH = 'webide-getFileData-finish';\nexport const WEBIDE_MARK_FETCH_FILES_START = 'webide-getFiles-start';\nexport const WEBIDE_MARK_FETCH_FILES_FINISH = 'webide-getFiles-finish';\nexport const WEBIDE_MARK_FETCH_PROJECT_DATA_START = 'webide-getProjectData-start';\nexport const WEBIDE_MARK_FETCH_PROJECT_DATA_FINISH = 'webide-getProjectData-finish';\n\n// Measures\nexport const WEBIDE_MEASURE_FILE_AFTER_INTERACTION = 'webide-file-loading-after-interaction';\nexport const WEBIDE_MEASURE_FETCH_PROJECT_DATA = 'WebIDE: Project data';\nexport const WEBIDE_MEASURE_FETCH_BRANCH_DATA = 'WebIDE: Branch data';\nexport const WEBIDE_MEASURE_FETCH_FILE_DATA = 'WebIDE: File data';\nexport const WEBIDE_MEASURE_BEFORE_VUE = 'WebIDE: Before Vue app';\nexport const WEBIDE_MEASURE_REPO_EDITOR = 'WebIDE: Repo Editor';\nexport const WEBIDE_MEASURE_FETCH_FILES = 'WebIDE: Fetch Files';\n\n//\n// MR Diffs namespace\n//\n\n// Marks\nexport const MR_DIFFS_MARK_FILE_TREE_START = 'mr-diffs-mark-file-tree-start';\nexport const MR_DIFFS_MARK_FILE_TREE_END = 'mr-diffs-mark-file-tree-end';\nexport const MR_DIFFS_MARK_DIFF_FILES_START = 'mr-diffs-mark-diff-files-start';\nexport const MR_DIFFS_MARK_FIRST_DIFF_FILE_SHOWN = 'mr-diffs-mark-first-diff-file-shown';\nexport const MR_DIFFS_MARK_DIFF_FILES_END = 'mr-diffs-mark-diff-files-end';\n\n// Measures\nexport const MR_DIFFS_MEASURE_FILE_TREE_DONE = 'mr-diffs-measure-file-tree-done';\nexport const MR_DIFFS_MEASURE_DIFF_FILES_DONE = 'mr-diffs-measure-diff-files-done';\n\n//\n// Pipelines Detail namespace\n//\n\n// Marks\nexport const PIPELINES_DETAIL_LINKS_MARK_CALCULATE_START =\n 'pipelines-detail-links-mark-calculate-start';\nexport const PIPELINES_DETAIL_LINKS_MARK_CALCULATE_END =\n 'pipelines-detail-links-mark-calculate-end';\n\n// Measures\nexport const PIPELINES_DETAIL_LINKS_MEASURE_CALCULATION =\n 'Pipelines Detail Graph: Links Calculation';\n\n// Metrics\n// Note: These strings must match the backend\n// (defined in: app/services/ci/prometheus_metrics/observe_histograms_service.rb)\nexport const PIPELINES_DETAIL_LINK_DURATION = 'pipeline_graph_link_calculation_duration_seconds';\nexport const PIPELINES_DETAIL_LINKS_TOTAL = 'pipeline_graph_links_total';\nexport const PIPELINES_DETAIL_LINKS_JOB_RATIO = 'pipeline_graph_links_per_job_ratio';\n\n//\n// REPO BROWSER NAMESPACE\n//\n\n// Marks\nexport const REPO_BLOB_LOAD_VIEWER_START = 'blobviewer-load-viewer-start';\nexport const REPO_BLOB_SWITCH_TO_VIEWER_START = 'blobviewer-switch-to-viewerr-start';\nexport const REPO_BLOB_LOAD_VIEWER_FINISH = 'blobviewer-load-viewer-finish';\n\n// Measures\nexport const REPO_BLOB_LOAD_VIEWER = 'Repository File Viewer: loading the viewer';\nexport const REPO_BLOB_SWITCH_VIEWER = 'Repository File Viewer: switching the viewer';\n\n//\n// DESIGN MANAGEMENT NAMESPACE\n//\n\n// Marks\nexport const DESIGN_MARK_APP_START = 'design-app-start';\n\n// Measures\nexport const DESIGN_MEASURE_BEFORE_APP = 'Design Management: Before the Vue app';\nexport const DESIGN_MAIN_IMAGE_OUTPUT = 'Design Management: Single image preview';\n","import { extend } from '../vue';\nimport { PROP_TYPE_BOOLEAN } from '../constants/props';\nimport { makePropsConfigurable, makeProp } from '../utils/props';\n\n// --- Props ---\n\nconst props = makePropsConfigurable({\n plain: makeProp(PROP_TYPE_BOOLEAN, false)\n}, 'formControls');\n\n// --- Mixin ---\n\n// @vue/component\nconst formCustomMixin = extend({\n props,\n computed: {\n custom() {\n return !this.plain;\n }\n }\n});\n\nexport { formCustomMixin, props };\n","import { extend } from '../../vue';\nimport { NAME_FORM_RADIO_GROUP } from '../../constants/components';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { props as props$1, formRadioCheckGroupMixin } from '../../mixins/form-radio-check-group';\n\n// --- Props ---\n\nconst props = makePropsConfigurable(props$1, NAME_FORM_RADIO_GROUP);\n\n// --- Main component ---\n\n// @vue/component\nconst BFormRadioGroup = /*#__PURE__*/extend({\n name: NAME_FORM_RADIO_GROUP,\n mixins: [formRadioCheckGroupMixin],\n provide() {\n return {\n getBvRadioGroup: () => this\n };\n },\n props,\n computed: {\n isRadioGroup() {\n return true;\n }\n }\n});\n\nexport { BFormRadioGroup, props };\n","import { formOptionsMixin } from '../../../../vendor/bootstrap-vue/src/mixins/form-options';\nimport { BFormRadioGroup } from '../../../../vendor/bootstrap-vue/src/components/form-radio/form-radio-group';\nimport { SafeHtmlDirective } from '../../../../directives/safe_html/safe_html';\nimport GlFormRadio from '../form_radio/form_radio';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst {\n model\n} = BFormRadioGroup.options;\nvar script = {\n name: 'GlFormRadioGroup',\n components: {\n BFormRadioGroup,\n GlFormRadio\n },\n directives: {\n SafeHtml: SafeHtmlDirective\n },\n mixins: [formOptionsMixin],\n inheritAttrs: false,\n model,\n methods: {\n onInput(e) {\n /**\n * Emitted when the selected value is changed.\n *\n * @event input\n */\n this.$emit('input', e);\n },\n onChange(e) {\n /**\n * Emitted when the selected value is changed.\n *\n * @event change\n */\n this.$emit('change', e);\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-form-radio-group',_vm._g(_vm._b({staticClass:\"gl-form-checkbox-group\",attrs:{\"stacked\":\"\"},on:{\"input\":_vm.onInput,\"change\":_vm.onChange}},'b-form-radio-group',_vm.$attrs,false),_vm.$listeners),[_vm._t(\"first\"),_vm._v(\" \"),_vm._l((_vm.formOptions),function(option,idx){return _c('gl-form-radio',{key:idx,attrs:{\"value\":option.value,\"disabled\":option.disabled}},[(option.html)?_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(option.html),expression:\"option.html\"}]}):_c('span',[_vm._v(_vm._s(option.text))])])}),_vm._v(\" \"),_vm._t(\"default\")],2)};\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 { GlTooltipDirective } from '../../../directives/tooltip';\nimport { GlResizeObserverDirective } from '../../../directives/resize_observer/resize_observer';\nimport { POSITION, ZERO_WIDTH_SPACE } from './constants';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nvar script = {\n name: 'GlTruncate',\n POSITION,\n directives: {\n GlTooltip: GlTooltipDirective,\n GlResizeObserver: GlResizeObserverDirective\n },\n props: {\n /**\n * Text to be ellipsized\n */\n text: {\n type: String,\n required: true\n },\n /**\n * Ellipsis position\n */\n position: {\n type: String,\n required: false,\n default: POSITION.END,\n validator: value => Object.values(POSITION).includes(value)\n },\n /**\n * Display the full text in a tooltip only if it is being truncated\n */\n withTooltip: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n data() {\n return {\n isTruncated: false\n };\n },\n computed: {\n middleIndex() {\n return Math.floor(this.text.length / 2);\n },\n preventWhitespaceCollapse() {\n // We don't use `\\s` here since it includes non-breaking spaces and other\n // non-collapsible whitespace characters.\n // See https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n // and https://infra.spec.whatwg.org/#ascii-whitespace.\n const collapsibleWhitespaceChar = /^[ \\n\\t\\r\\f]$/;\n const {\n text,\n middleIndex\n } = this;\n const lastCharOfFirstIsCollapsibleWhitespace = collapsibleWhitespaceChar.test(text.charAt(middleIndex - 1));\n const firstCharOfLastIsCollapsibleWhitespace = collapsibleWhitespaceChar.test(text.charAt(middleIndex));\n return lastCharOfFirstIsCollapsibleWhitespace && !firstCharOfLastIsCollapsibleWhitespace;\n },\n first() {\n const first = this.text.slice(0, this.middleIndex);\n if (this.preventWhitespaceCollapse) {\n // Because this component's root element has an internal flex layout,\n // whitespace at the end of the first child span and at the beginning\n // of the second child span would be ignored (i.e., totally collapsed).\n //\n // This means that strings with a space character in the middle would\n // render as if there were no space, which would be incorrect (e.g.,\n // \"Gap here\" would render as \"Gaphere\").\n //\n // So, in that case, we insert a zero-width space at the end of the\n // first child span to prevent that whitespace from being totally\n // collapsed. In other words:\n // 'first-part-with-space ' → 'first-part-with-space ​'\n //\n // If there's a whitespace character at the begging of the second child\n // span, we do *not* do this, since the left-to-right mark (‎) just\n // before `{{ last }}` in the template prevents the collapse of any\n // whitespace at the start of `last`. If we ignored this edge case,\n // we'd render a double space, which wouldn't correspond to how the\n // string would normally render.\n //\n // See\n // https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Whitespace#whitespace_in_block_formatting_contexts\n // for more information on how browsers treat whitespace.\n return `${first}${ZERO_WIDTH_SPACE}`;\n }\n return first;\n },\n last() {\n return this.text.slice(this.middleIndex);\n },\n isTooltipDisabled() {\n return !this.withTooltip || !this.isTruncated;\n },\n title() {\n return this.withTooltip ? this.text : undefined;\n }\n },\n watch: {\n withTooltip(withTooltip) {\n if (withTooltip) {\n this.checkTruncationState();\n }\n }\n },\n methods: {\n checkTruncationState() {\n if (this.withTooltip) {\n this.isTruncated = this.$refs.text.scrollWidth > this.$refs.text.offsetWidth;\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 (_vm.position === _vm.$options.POSITION.START)?_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:({ disabled: _vm.isTooltipDisabled }),expression:\"{ disabled: isTooltipDisabled }\"},{name:\"gl-resize-observer\",rawName:\"v-gl-resize-observer:[withTooltip]\",value:(_vm.checkTruncationState),expression:\"checkTruncationState\",arg:_vm.withTooltip}],staticClass:\"gl-truncate-component\",attrs:{\"title\":_vm.title}},[_c('span',{ref:\"text\",staticClass:\"gl-truncate-start !gl-text-ellipsis\"},[_vm._v(\"‎\"+_vm._s(_vm.text)+\"‎\")])]):(_vm.position === _vm.$options.POSITION.MIDDLE)?_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:({ disabled: _vm.isTooltipDisabled }),expression:\"{ disabled: isTooltipDisabled }\"},{name:\"gl-resize-observer\",rawName:\"v-gl-resize-observer:[withTooltip]\",value:(_vm.checkTruncationState),expression:\"checkTruncationState\",arg:_vm.withTooltip}],staticClass:\"gl-truncate-component\",attrs:{\"title\":_vm.title}},[_c('span',{ref:\"text\",staticClass:\"gl-truncate-end\"},[_vm._v(_vm._s(_vm.first))]),_c('span',{staticClass:\"gl-truncate-start\"},[_vm._v(\"‎\"+_vm._s(_vm.last)+\"‎\")])]):_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:({ disabled: _vm.isTooltipDisabled }),expression:\"{ disabled: isTooltipDisabled }\"},{name:\"gl-resize-observer\",rawName:\"v-gl-resize-observer:[withTooltip]\",value:(_vm.checkTruncationState),expression:\"checkTruncationState\",arg:_vm.withTooltip}],staticClass:\"gl-truncate-component\",attrs:{\"data-testid\":\"truncate-end-container\",\"title\":_vm.title}},[_c('span',{ref:\"text\",staticClass:\"gl-truncate-end\"},[_vm._v(_vm._s(_vm.text))])])};\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 { looseEqual } from './loose-equal';\n\n// Assumes that the first argument is an array\nconst looseIndexOf = (array, value) => {\n for (let i = 0; i < array.length; i++) {\n if (looseEqual(array[i], value)) {\n return i;\n }\n }\n return -1;\n};\n\nexport { looseIndexOf };\n","import { extend } from '../../vue';\nimport { NAME_FORM_CHECKBOX } from '../../constants/components';\nimport { EVENT_NAME_CHANGE, MODEL_EVENT_NAME_PREFIX } from '../../constants/events';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_ANY } from '../../constants/props';\nimport { isArray } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { looseIndexOf } from '../../utils/loose-index-of';\nimport { sortKeys } from '../../utils/object';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\nimport { props as props$1, formRadioCheckMixin, MODEL_EVENT_NAME } from '../../mixins/form-radio-check';\n\n// --- Constants ---\n\nconst MODEL_PROP_NAME_INDETERMINATE = 'indeterminate';\nconst MODEL_EVENT_NAME_INDETERMINATE = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_INDETERMINATE;\n\n// --- Props ---\n\nconst props = makePropsConfigurable(sortKeys({\n ...props$1,\n // Not applicable in multi-check mode\n [MODEL_PROP_NAME_INDETERMINATE]: makeProp(PROP_TYPE_BOOLEAN, false),\n // Custom switch styling\n switch: makeProp(PROP_TYPE_BOOLEAN, false),\n // Not applicable in multi-check mode\n uncheckedValue: makeProp(PROP_TYPE_ANY, false),\n value: makeProp(PROP_TYPE_ANY, true)\n}), NAME_FORM_CHECKBOX);\n\n// --- Main component ---\n\n// @vue/component\nconst BFormCheckbox = /*#__PURE__*/extend({\n name: NAME_FORM_CHECKBOX,\n mixins: [formRadioCheckMixin],\n inject: {\n getBvGroup: {\n from: 'getBvCheckGroup',\n default: () => () => null\n }\n },\n props,\n computed: {\n bvGroup() {\n return this.getBvGroup();\n },\n isChecked() {\n const {\n value,\n computedLocalChecked: checked\n } = this;\n return isArray(checked) ? looseIndexOf(checked, value) > -1 : looseEqual(checked, value);\n },\n isRadio() {\n return false;\n }\n },\n watch: {\n [MODEL_PROP_NAME_INDETERMINATE](newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.setIndeterminate(newValue);\n }\n }\n },\n mounted() {\n // Set initial indeterminate state\n this.setIndeterminate(this[MODEL_PROP_NAME_INDETERMINATE]);\n },\n methods: {\n computedLocalCheckedWatcher(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n const $input = this.$refs.input;\n if ($input) {\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, $input.indeterminate);\n }\n }\n },\n handleChange(_ref) {\n let {\n target: {\n checked,\n indeterminate\n }\n } = _ref;\n const {\n value,\n uncheckedValue\n } = this;\n\n // Update `computedLocalChecked`\n let localChecked = this.computedLocalChecked;\n if (isArray(localChecked)) {\n const index = looseIndexOf(localChecked, value);\n if (checked && index < 0) {\n // Add value to array\n localChecked = localChecked.concat(value);\n } else if (!checked && index > -1) {\n // Remove value from array\n localChecked = localChecked.slice(0, index).concat(localChecked.slice(index + 1));\n }\n } else {\n localChecked = checked ? value : uncheckedValue;\n }\n this.computedLocalChecked = localChecked;\n\n // Fire events in a `$nextTick()` to ensure the `v-model` is updated\n this.$nextTick(() => {\n // Change is only emitted on user interaction\n this.$emit(EVENT_NAME_CHANGE, localChecked);\n\n // If this is a child of a group, we emit a change event on it as well\n if (this.isGroup) {\n this.bvGroup.$emit(EVENT_NAME_CHANGE, localChecked);\n }\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, indeterminate);\n });\n },\n setIndeterminate(state) {\n // Indeterminate only supported in single checkbox mode\n if (isArray(this.computedLocalChecked)) {\n state = false;\n }\n const $input = this.$refs.input;\n if ($input) {\n $input.indeterminate = state;\n // Emit update event to prop\n this.$emit(MODEL_EVENT_NAME_INDETERMINATE, state);\n }\n }\n }\n});\n\nexport { BFormCheckbox, props };\n","import { extend } from '../vue';\nimport { EVENT_NAME_UPDATE, EVENT_NAME_INPUT, EVENT_NAME_CHANGE, EVENT_NAME_BLUR } from '../constants/events';\nimport { PROP_TYPE_NUMBER_STRING, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_STRING, PROP_TYPE_FUNCTION, PROP_TYPE_BOOLEAN } from '../constants/props';\nimport { attemptFocus, attemptBlur } from '../utils/dom';\nimport { stopEvent } from '../utils/events';\nimport { mathMax } from '../utils/math';\nimport { makeModelMixin } from '../utils/model';\nimport { toInteger, toFloat } from '../utils/number';\nimport { sortKeys } from '../utils/object';\nimport { makePropsConfigurable, makeProp, hasPropFunction } from '../utils/props';\nimport { toString } from '../utils/string';\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_STRING,\n defaultValue: '',\n event: EVENT_NAME_UPDATE\n});\n\n// --- Props ---\n\nconst props = makePropsConfigurable(sortKeys({\n ...modelProps,\n ariaInvalid: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n autocomplete: makeProp(PROP_TYPE_STRING),\n // Debounce timeout (in ms). Not applicable with `lazy` prop\n debounce: makeProp(PROP_TYPE_NUMBER_STRING, 0),\n formatter: makeProp(PROP_TYPE_FUNCTION),\n // Only update the `v-model` on blur/change events\n lazy: makeProp(PROP_TYPE_BOOLEAN, false),\n lazyFormatter: makeProp(PROP_TYPE_BOOLEAN, false),\n number: makeProp(PROP_TYPE_BOOLEAN, false),\n placeholder: makeProp(PROP_TYPE_STRING),\n plaintext: makeProp(PROP_TYPE_BOOLEAN, false),\n readonly: makeProp(PROP_TYPE_BOOLEAN, false),\n trim: makeProp(PROP_TYPE_BOOLEAN, false)\n}), 'formTextControls');\n\n// --- Mixin ---\n\n// @vue/component\nconst formTextMixin = extend({\n mixins: [modelMixin],\n props,\n data() {\n const value = this[MODEL_PROP_NAME];\n return {\n localValue: toString(value),\n vModelValue: this.modifyValue(value)\n };\n },\n computed: {\n computedClass() {\n const {\n plaintext,\n type\n } = this;\n const isRange = type === 'range';\n const isColor = type === 'color';\n return [{\n // Range input needs class `custom-range`\n 'custom-range': isRange,\n // `plaintext` not supported by `type=\"range\"` or `type=\"color\"`\n 'form-control-plaintext': plaintext && !isRange && !isColor,\n // `form-control` not used by `type=\"range\"` or `plaintext`\n // Always used by `type=\"color\"`\n 'form-control': isColor || !plaintext && !isRange\n }, this.sizeFormClass, this.stateClass];\n },\n computedDebounce() {\n // Ensure we have a positive number equal to or greater than 0\n return mathMax(toInteger(this.debounce, 0), 0);\n },\n hasFormatter() {\n return hasPropFunction(this.formatter);\n }\n },\n watch: {\n [MODEL_PROP_NAME](newValue) {\n const stringifyValue = toString(newValue);\n const modifiedValue = this.modifyValue(newValue);\n if (stringifyValue !== this.localValue || modifiedValue !== this.vModelValue) {\n // Clear any pending debounce timeout, as we are overwriting the user input\n this.clearDebounce();\n // Update the local values\n this.localValue = stringifyValue;\n this.vModelValue = modifiedValue;\n }\n }\n },\n created() {\n // Create private non-reactive props\n this.$_inputDebounceTimer = null;\n },\n beforeDestroy() {\n this.clearDebounce();\n },\n methods: {\n clearDebounce() {\n clearTimeout(this.$_inputDebounceTimer);\n this.$_inputDebounceTimer = null;\n },\n formatValue(value, event) {\n let force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n value = toString(value);\n if (this.hasFormatter && (!this.lazyFormatter || force)) {\n value = this.formatter(value, event);\n }\n return value;\n },\n modifyValue(value) {\n value = toString(value);\n // Emulate `.trim` modifier behaviour\n if (this.trim) {\n value = value.trim();\n }\n // Emulate `.number` modifier behaviour\n if (this.number) {\n value = toFloat(value, value);\n }\n return value;\n },\n updateValue(value) {\n let force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const {\n lazy\n } = this;\n if (lazy && !force) {\n return;\n }\n // Make sure to always clear the debounce when `updateValue()`\n // is called, even when the v-model hasn't changed\n this.clearDebounce();\n // Define the shared update logic in a method to be able to use\n // it for immediate and debounced value changes\n const doUpdate = () => {\n value = this.modifyValue(value);\n if (value !== this.vModelValue) {\n this.vModelValue = value;\n this.$emit(MODEL_EVENT_NAME, value);\n } else if (this.hasFormatter) {\n // When the `vModelValue` hasn't changed but the actual input value\n // is out of sync, make sure to change it to the given one\n // Usually caused by browser autocomplete and how it triggers the\n // change or input event, or depending on the formatter function\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/2657\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/3498\n /* istanbul ignore next: hard to test */\n const $input = this.$refs.input;\n /* istanbul ignore if: hard to test out of sync value */\n if ($input && value !== $input.value) {\n $input.value = value;\n }\n }\n };\n // Only debounce the value update when a value greater than `0`\n // is set and we are not in lazy mode or this is a forced update\n const debounce = this.computedDebounce;\n if (debounce > 0 && !lazy && !force) {\n this.$_inputDebounceTimer = setTimeout(doUpdate, debounce);\n } else {\n // Immediately update the v-model\n doUpdate();\n }\n },\n onInput(event) {\n // `event.target.composing` is set by Vue\n // https://github.com/vuejs/vue/blob/dev/src/platforms/web/runtime/directives/model.js\n // TODO: Is this needed now with the latest Vue?\n /* istanbul ignore if: hard to test composition events */\n if (event.target.composing) {\n return;\n }\n const {\n value\n } = event.target;\n const formattedValue = this.formatValue(value, event);\n // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n /* istanbul ignore next */\n if (formattedValue === false || event.defaultPrevented) {\n stopEvent(event, {\n propagation: false\n });\n return;\n }\n this.localValue = formattedValue;\n this.updateValue(formattedValue);\n this.$emit(EVENT_NAME_INPUT, formattedValue);\n },\n onChange(event) {\n const {\n value\n } = event.target;\n const formattedValue = this.formatValue(value, event);\n // Exit when the `formatter` function strictly returned `false`\n // or prevented the input event\n /* istanbul ignore next */\n if (formattedValue === false || event.defaultPrevented) {\n stopEvent(event, {\n propagation: false\n });\n return;\n }\n this.localValue = formattedValue;\n this.updateValue(formattedValue, true);\n this.$emit(EVENT_NAME_CHANGE, formattedValue);\n },\n onBlur(event) {\n // Apply the `localValue` on blur to prevent cursor jumps\n // on mobile browsers (e.g. caused by autocomplete)\n const {\n value\n } = event.target;\n const formattedValue = this.formatValue(value, event, true);\n if (formattedValue !== false) {\n // We need to use the modified value here to apply the\n // `.trim` and `.number` modifiers properly\n this.localValue = toString(this.modifyValue(formattedValue));\n // We pass the formatted value here since the `updateValue` method\n // handles the modifiers itself\n this.updateValue(formattedValue, true);\n }\n // Emit native blur event\n this.$emit(EVENT_NAME_BLUR, event);\n },\n focus() {\n // For external handler that may want a focus method\n if (!this.disabled) {\n attemptFocus(this.$el);\n }\n },\n blur() {\n // For external handler that may want a blur method\n if (!this.disabled) {\n attemptBlur(this.$el);\n }\n }\n }\n});\n\nexport { MODEL_EVENT_NAME, MODEL_PROP_NAME, formTextMixin, props };\n","import { extend } from '../../vue';\nimport { NAME_FORM_RADIO } from '../../constants/components';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { props as props$1, formRadioCheckMixin } from '../../mixins/form-radio-check';\n\n// --- Props ---\n\nconst props = makePropsConfigurable(props$1, NAME_FORM_RADIO);\n\n// --- Main component ---\n\n// @vue/component\nconst BFormRadio = /*#__PURE__*/extend({\n name: NAME_FORM_RADIO,\n mixins: [formRadioCheckMixin],\n inject: {\n getBvGroup: {\n from: 'getBvRadioGroup',\n default: () => () => null\n }\n },\n props,\n computed: {\n bvGroup() {\n return this.getBvGroup();\n }\n }\n});\n\nexport { BFormRadio, props };\n","import { BFormRadio } from '../../../../vendor/bootstrap-vue/src/components/form-radio/form-radio';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst {\n model\n} = BFormRadio.options;\nvar script = {\n name: 'GlFormRadio',\n components: {\n BFormRadio\n },\n inheritAttrs: false,\n model: {\n prop: model.prop,\n event: model.event\n },\n props: {\n /**\n * Whether the radio is checked\n */\n checked: {\n type: [String, Number, Boolean, Object],\n required: false,\n default: false\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-form-radio',_vm._b({staticClass:\"gl-form-radio\",attrs:{\"checked\":_vm.checked},on:{\"input\":function($event){return _vm.$emit('input', $event)},\"change\":function($event){return _vm.$emit('change', $event)}}},'b-form-radio',_vm.$attrs,false),[_vm._t(\"default\"),_vm._v(\" \"),(_vm.$scopedSlots.help)?_c('p',{staticClass:\"help-text\"},[_vm._t(\"help\")],2):_vm._e()],2)};\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","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","import { extend } from '../vue';\n\n// @vue/component\nconst formValidityMixin = extend({\n computed: {\n validity: {\n // Expose validity property\n cache: false,\n /* istanbul ignore next */\n get() {\n return this.$refs.input.validity;\n }\n },\n validationMessage: {\n // Expose validationMessage property\n cache: false,\n /* istanbul ignore next */\n get() {\n return this.$refs.input.validationMessage;\n }\n },\n willValidate: {\n // Expose willValidate property\n cache: false,\n /* istanbul ignore next */\n get() {\n return this.$refs.input.willValidate;\n }\n }\n },\n methods: {\n /* istanbul ignore next */\n setCustomValidity() {\n // For external handler that may want a setCustomValidity(...) method\n return this.$refs.input.setCustomValidity(...arguments);\n },\n /* istanbul ignore next */\n checkValidity() {\n // For external handler that may want a checkValidity(...) method\n return this.$refs.input.checkValidity(...arguments);\n },\n /* istanbul ignore next */\n reportValidity() {\n // For external handler that may want a reportValidity(...) method\n return this.$refs.input.reportValidity(...arguments);\n }\n }\n});\n\nexport { formValidityMixin };\n","// See https://gitlab.com/gitlab-org/gitlab-ui/-/issues/1421#note_617098438\n// for more details\nconst forbiddenDataAttrs = ['data-remote', 'data-url', 'data-type', 'data-method', 'data-disable-with', 'data-disabled', 'data-disable', 'data-turbo'];\nconst forbiddenTags = ['style', 'mstyle', 'form'];\n\nexport { forbiddenDataAttrs, forbiddenTags };\n","import DOMPurify from 'dompurify';\nimport { forbiddenDataAttrs, forbiddenTags } from './constants';\n\nconst {\n sanitize\n} = DOMPurify;\n\n// Mitigate against future dompurify mXSS bypasses by\n// avoiding additional serialize/parse round trip.\n// See https://gitlab.com/gitlab-org/gitlab-ui/-/merge_requests/1782\n// and https://gitlab.com/gitlab-org/gitlab-ui/-/merge_requests/2127\n// for more details.\nconst DEFAULT_CONFIG = {\n RETURN_DOM_FRAGMENT: true,\n ALLOW_UNKNOWN_PROTOCOLS: true,\n FORBID_ATTR: forbiddenDataAttrs,\n FORBID_TAGS: forbiddenTags\n};\nconst transform = (el, binding) => {\n if (binding.oldValue !== binding.value) {\n var _binding$arg;\n const config = {\n ...DEFAULT_CONFIG,\n ...((_binding$arg = binding.arg) !== null && _binding$arg !== void 0 ? _binding$arg : {})\n };\n el.textContent = '';\n el.appendChild(sanitize(binding.value, config));\n }\n};\nconst clear = el => {\n el.textContent = '';\n};\nconst SafeHtmlDirective = {\n bind: transform,\n update: transform,\n unbind: clear\n};\n\nexport { SafeHtmlDirective };\n","import { extend } from '../vue';\n\n// @vue/component\nconst formSelectionMixin = extend({\n computed: {\n selectionStart: {\n // Expose selectionStart for formatters, etc\n cache: false,\n /* istanbul ignore next */\n get() {\n return this.$refs.input.selectionStart;\n },\n /* istanbul ignore next */\n set(val) {\n this.$refs.input.selectionStart = val;\n }\n },\n selectionEnd: {\n // Expose selectionEnd for formatters, etc\n cache: false,\n /* istanbul ignore next */\n get() {\n return this.$refs.input.selectionEnd;\n },\n /* istanbul ignore next */\n set(val) {\n this.$refs.input.selectionEnd = val;\n }\n },\n selectionDirection: {\n // Expose selectionDirection for formatters, etc\n cache: false,\n /* istanbul ignore next */\n get() {\n return this.$refs.input.selectionDirection;\n },\n /* istanbul ignore next */\n set(val) {\n this.$refs.input.selectionDirection = val;\n }\n }\n },\n methods: {\n /* istanbul ignore next */\n select() {\n // For external handler that may want a select() method\n this.$refs.input.select(...arguments);\n },\n /* istanbul ignore next */\n setSelectionRange() {\n // For external handler that may want a setSelectionRange(a,b,c) method\n this.$refs.input.setSelectionRange(...arguments);\n },\n /* istanbul ignore next */\n setRangeText() {\n // For external handler that may want a setRangeText(a,b,c) method\n this.$refs.input.setRangeText(...arguments);\n }\n }\n});\n\nexport { formSelectionMixin };\n","import { extend } from '../vue';\nimport { PROP_TYPE_STRING, PROP_TYPE_ARRAY_OBJECT } from '../constants/props';\nimport { get } from '../utils/get';\nimport { stripTags } from '../utils/html';\nimport { isPlainObject, isUndefined, isArray } from '../utils/inspect';\nimport { keys } from '../utils/object';\nimport { makePropsConfigurable, makeProp } from '../utils/props';\nimport { warn } from '../utils/warn';\n\n// --- Constants ---\n\nconst OPTIONS_OBJECT_DEPRECATED_MSG = 'Setting prop \"options\" to an object is deprecated. Use the array format instead.';\n\n// --- Props ---\n\nconst props = makePropsConfigurable({\n disabledField: makeProp(PROP_TYPE_STRING, 'disabled'),\n htmlField: makeProp(PROP_TYPE_STRING, 'html'),\n options: makeProp(PROP_TYPE_ARRAY_OBJECT, []),\n textField: makeProp(PROP_TYPE_STRING, 'text'),\n valueField: makeProp(PROP_TYPE_STRING, 'value')\n}, 'formOptionControls');\n\n// --- Mixin ---\n\n// @vue/component\nconst formOptionsMixin = extend({\n props,\n computed: {\n formOptions() {\n return this.normalizeOptions(this.options);\n }\n },\n methods: {\n normalizeOption(option) {\n let key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n // When the option is an object, normalize it\n if (isPlainObject(option)) {\n const value = get(option, this.valueField);\n const text = get(option, this.textField);\n return {\n value: isUndefined(value) ? key || text : value,\n text: stripTags(String(isUndefined(text) ? key : text)),\n html: get(option, this.htmlField),\n disabled: Boolean(get(option, this.disabledField))\n };\n }\n // Otherwise create an `