{"version":3,"sources":["webpack:////home/git/gitlab/node_modules/bootstrap-vue/esm/components/form/form-text.js","webpack:///./notifications/components/notifications_dropdown.vue","webpack:///./notifications/constants.js","webpack:///./notifications/components/custom_notifications_modal.vue","webpack:///./notifications/components/custom_notifications_modal.vue?bfe1","webpack:///notifications/components/custom_notifications_modal.vue","webpack:///./notifications/components/custom_notifications_modal.vue?1969","webpack:///./notifications/components/notifications_dropdown_item.vue?f277","webpack:///notifications/components/notifications_dropdown_item.vue","webpack:///./notifications/components/notifications_dropdown_item.vue?8cac","webpack:///./notifications/components/notifications_dropdown_item.vue","webpack:///./notifications/components/notifications_dropdown.vue?c10c","webpack:///notifications/components/notifications_dropdown.vue","webpack:///./notifications/components/notifications_dropdown.vue?6ba3","webpack:////home/git/gitlab/node_modules/bootstrap-vue/esm/utils/css-escape.js","webpack:////home/git/gitlab/node_modules/bootstrap-vue/esm/components/layout/col.js","webpack:////home/git/gitlab/node_modules/bootstrap-vue/esm/components/layout/form-row.js","webpack:////home/git/gitlab/node_modules/bootstrap-vue/esm/components/form/form-invalid-feedback.js","webpack:////home/git/gitlab/node_modules/bootstrap-vue/esm/components/form/form-valid-feedback.js","webpack:////home/git/gitlab/node_modules/bootstrap-vue/esm/components/form-group/form-group.js","webpack:////home/git/gitlab/node_modules/@gitlab/ui/dist/components/base/form/form_group/form_group.js"],"names":["props","id","inline","tag","textVariant","BFormText","name","functional","render","h","_ref","obj","key","value","data","children","class","concat","Object","defineProperty","enumerable","configurable","writable","attrs","i18n","notificationTitles","participating","s__","mention","watch","global","disabled","custom","notificationTooltipTitle","__","notificationDescriptions","owner_disabled","updateNotificationLevelErrorMessage","loadNotificationLevelErrorMessage","customNotificationsModal","title","bodyTitle","bodyMessage","eventNames","change_reviewer_merge_request","close_issue","close_merge_request","failed_pipeline","fixed_pipeline","issue_due","merge_merge_request","moved_project","new_epic","new_issue","new_merge_request","new_note","new_release","push_to_merge_request","reassign_issue","reassign_merge_request","reopen_issue","reopen_merge_request","merge_when_pipeline_succeeds","success_pipeline","approver","components","GlModal","GlSprintf","GlLink","GlLoadingIcon","GlFormGroup","GlFormCheckbox","inject","projectId","default","groupId","helpPagePath","model","prop","event","modalId","type","String","required","visible","Boolean","isLoading","events","methods","open","$refs","modal","show","buildEvents","_this","keys","map","enabled","$options","loading","length","loadNotificationSettings","Api","getNotificationSettings","error","$toast","isEnabled","index","findIndex","e","$set","updateNotificationSettings","_vm","this","_c","_self","_g","ref","on","onOpen","$listeners","staticClass","_v","_s","scopedSlots","_u","fn","content","_l","$event","updateEvent","callback","$$v","expression","_e","GlDropdownItem","level","description","notificationLevel","computed","isActive","$emit","GlDropdown","GlDropdownDivider","NotificationsDropdownItem","CustomNotificationsModal","directives","GlTooltip","GlTooltipDirective","containerClass","emailsDisabled","dropdownItems","buttonSize","initialNotificationLevel","showLabel","noFlip","selectedNotificationLevel","notificationsModalVisible","notificationLevels","isCustomNotification","buttonIcon","buttonText","buttonTooltip","notificationTitle","sprintf","notification_title","openNotificationsModal","selectItem","updateNotificationLevel","customLevel","rawName","item","escapeChar","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","apply","_objectSpread","target","i","arguments","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","ALIGN_SELF_VALUES","computeBreakpointClass","memoize","breakpoint","className","breakpointPropMap","BCol","breakpoints","identity","breakpointCol","reduce","breakpointOffset","breakpointOrder","col","offset","order","alignSelf","array","cols","_classList$push","classList","_keys","c","replace","hasColClasses","some","test","BFormRow","ariaLive","forceShow","role","state","tooltip","BFormInvalidFeedback","BFormValidFeedback","INPUTS","INPUT_SELECTOR","v","join","LEGEND_INTERACTIVE_ELEMENTS","BFormGroup","mixins","feedbackAriaLive","invalidFeedback","label","labelClass","labelFor","labelSize","labelSrOnly","validFeedback","validated","ariaDescribedby","contentColProps","getColProps","$props","labelAlignClasses","getAlignClasses","labelColProps","isHorizontal","newValue","oldValue","updateAriaDescribedby","mounted","$nextTick","prefix","result","propValue","firstCharCode","$input","charCodeAt","split","char","charCode","toString","attr","newIds","oldIds","ids","indexOf","trim","onLegendClick","tagName","inputs","computedState","normalizeSlot","safeId","isFieldset","$label","labelContent","labelId","labelTag","for","click","tabindex","$invalidFeedback","invalidFeedbackContent","invalidFeedbackId","$validFeedback","validFeedbackContent","validFeedbackId","$description","descriptionContent","descriptionId","$content","stateClass","computedAriaInvalid","__vue_script__","inheritAttrs","Array","labelDescription","optional","optionalText","isArray","$slots","__vue_component__","_h","$createElement","_b","actualLabelClass","_t","$attrs","proxy","slot","staticRenderFns","undefined"],"mappings":"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","file":"commons-pages.groups.details-pages.groups.show-pages.profiles.notifications.show-pages.projects.home-289c4da9.24cf48ea.chunk.js","sourcesContent":["function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { extend, mergeData } from '../../vue';\nimport { NAME_FORM_TEXT } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'small'),\n textVariant: makeProp(PROP_TYPE_STRING, 'muted')\n}, NAME_FORM_TEXT); // --- Main component ---\n// @vue/component\n\nexport var BFormText = /*#__PURE__*/extend({\n name: NAME_FORM_TEXT,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n class: _defineProperty({\n 'form-text': !props.inline\n }, \"text-\".concat(props.textVariant), props.textVariant),\n attrs: {\n id: props.id\n }\n }), children);\n }\n});","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:_vm.containerClass},[_c('gl-dropdown',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:({ title: _vm.buttonTooltip }),expression:\"{ title: buttonTooltip }\"}],attrs:{\"data-testid\":\"notification-dropdown\",\"size\":_vm.buttonSize,\"icon\":_vm.buttonIcon,\"loading\":_vm.isLoading,\"disabled\":_vm.emailsDisabled,\"split\":_vm.isCustomNotification,\"text\":_vm.buttonText,\"no-flip\":_vm.noFlip},on:{\"click\":_vm.openNotificationsModal}},[_vm._l((_vm.notificationLevels),function(item){return _c('notifications-dropdown-item',{key:item.level,attrs:{\"level\":item.level,\"title\":item.title,\"description\":item.description,\"notification-level\":_vm.selectedNotificationLevel},on:{\"item-selected\":_vm.selectItem}})}),_vm._v(\" \"),_c('gl-dropdown-divider'),_vm._v(\" \"),_c('notifications-dropdown-item',{key:_vm.$options.customLevel,attrs:{\"level\":_vm.$options.customLevel,\"title\":_vm.$options.i18n.notificationTitles.custom,\"description\":_vm.$options.i18n.notificationDescriptions.custom,\"notification-level\":_vm.selectedNotificationLevel},on:{\"item-selected\":_vm.selectItem}})],2),_vm._v(\" \"),_c('custom-notifications-modal',{attrs:{\"modal-id\":_vm.$options.modalId},model:{value:(_vm.notificationsModalVisible),callback:function ($$v) {_vm.notificationsModalVisible=$$v},expression:\"notificationsModalVisible\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { __, s__ } from '~/locale';\n\nexport const CUSTOM_LEVEL = 'custom';\n\nexport const i18n = {\n notificationTitles: {\n participating: s__('NotificationLevel|Participate'),\n mention: s__('NotificationLevel|On mention'),\n watch: s__('NotificationLevel|Watch'),\n global: s__('NotificationLevel|Global'),\n disabled: s__('NotificationLevel|Disabled'),\n custom: s__('NotificationLevel|Custom'),\n },\n notificationTooltipTitle: __('Notification setting - %{notification_title}'),\n notificationDescriptions: {\n participating: __('You will only receive notifications for threads you have participated in'),\n mention: __('You will receive notifications only for comments in which you were @mentioned'),\n watch: __('You will receive notifications for any activity'),\n disabled: __('You will not get any notifications via email'),\n global: __('Use your global notification setting'),\n custom: __('You will only receive notifications for the events you choose'),\n owner_disabled: __('Notifications have been disabled by the project or group owner'),\n },\n updateNotificationLevelErrorMessage: __(\n 'An error occurred while updating the notification settings. Please try again.',\n ),\n loadNotificationLevelErrorMessage: __(\n 'An error occurred while loading the notification settings. Please try again.',\n ),\n customNotificationsModal: {\n title: __('Custom notification events'),\n bodyTitle: __('Notification events'),\n bodyMessage: __(\n 'Custom notification levels are the same as participating levels. With custom notification levels you will also receive notifications for select events. To find out more, check out %{notificationLinkStart}notification emails%{notificationLinkEnd}.',\n ),\n },\n eventNames: {\n change_reviewer_merge_request: s__('NotificationEvent|Change reviewer merge request'),\n close_issue: s__('NotificationEvent|Close issue'),\n close_merge_request: s__('NotificationEvent|Close merge request'),\n failed_pipeline: s__('NotificationEvent|Failed pipeline'),\n fixed_pipeline: s__('NotificationEvent|Fixed pipeline'),\n issue_due: s__('NotificationEvent|Issue due'),\n merge_merge_request: s__('NotificationEvent|Merge merge request'),\n moved_project: s__('NotificationEvent|Moved project'),\n new_epic: s__('NotificationEvent|New epic'),\n new_issue: s__('NotificationEvent|New issue'),\n new_merge_request: s__('NotificationEvent|New merge request'),\n new_note: s__('NotificationEvent|New note'),\n new_release: s__('NotificationEvent|New release'),\n push_to_merge_request: s__('NotificationEvent|Push to merge request'),\n reassign_issue: s__('NotificationEvent|Reassign issue'),\n reassign_merge_request: s__('NotificationEvent|Reassign merge request'),\n reopen_issue: s__('NotificationEvent|Reopen issue'),\n reopen_merge_request: s__('NotificationEvent|Reopen merge request'),\n merge_when_pipeline_succeeds: s__('NotificationEvent|Merge when pipeline succeeds'),\n success_pipeline: s__('NotificationEvent|Successful pipeline'),\n approver: s__('NotificationEvent|Added as approver'),\n },\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-modal',_vm._g({ref:\"modal\",attrs:{\"visible\":_vm.visible,\"modal-id\":_vm.modalId,\"title\":_vm.$options.i18n.customNotificationsModal.title},on:{\"show\":_vm.onOpen}},_vm.$listeners),[_c('div',{staticClass:\"container-fluid\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-4\"},[_c('h4',{staticClass:\"gl-mt-0\",attrs:{\"data-testid\":\"modalBodyTitle\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.customNotificationsModal.bodyTitle)+\"\\n \")]),_vm._v(\" \"),_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.customNotificationsModal.bodyMessage},scopedSlots:_vm._u([{key:\"notificationLink\",fn:function({ content }){return [_c('gl-link',{attrs:{\"href\":_vm.helpPagePath,\"target\":\"_blank\"}},[_vm._v(_vm._s(content))])]}}])})],1),_vm._v(\" \"),_c('div',{staticClass:\"col-lg-8\"},[(_vm.isLoading)?_c('gl-loading-icon',{staticClass:\"gl-mt-3\",attrs:{\"size\":\"lg\"}}):_vm._l((_vm.events),function(event){return _c('gl-form-group',{key:event.id},[_c('gl-form-checkbox',{attrs:{\"data-testid\":`notification-setting-${event.id}`},on:{\"change\":function($event){return _vm.updateEvent($event, event)}},model:{value:(event.enabled),callback:function ($$v) {_vm.$set(event, \"enabled\", $$v)},expression:\"event.enabled\"}},[_c('strong',[_vm._v(_vm._s(event.name))]),(event.loading)?_c('gl-loading-icon',{staticClass:\"gl-ml-2\",attrs:{\"size\":\"sm\",\"inline\":true}}):_vm._e()],1)],1)})],2)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--7-0!../../../../../node_modules/babel-loader/lib/index.js??ref--7-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./custom_notifications_modal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--7-0!../../../../../node_modules/babel-loader/lib/index.js??ref--7-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./custom_notifications_modal.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./custom_notifications_modal.vue?vue&type=template&id=fbe58658\"\nimport script from \"./custom_notifications_modal.vue?vue&type=script&lang=js\"\nexport * from \"./custom_notifications_modal.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--7-0!../../../../../node_modules/babel-loader/lib/index.js??ref--7-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./notifications_dropdown_item.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--7-0!../../../../../node_modules/babel-loader/lib/index.js??ref--7-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./notifications_dropdown_item.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./notifications_dropdown_item.vue?vue&type=template&id=fa687f02\"\nimport script from \"./notifications_dropdown_item.vue?vue&type=script&lang=js\"\nexport * from \"./notifications_dropdown_item.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-dropdown-item',{class:{ 'is-active': _vm.isActive },attrs:{\"is-check-item\":\"\",\"is-checked\":_vm.isActive},on:{\"click\":function($event){return _vm.$emit('item-selected', _vm.level)}}},[_c('div',{staticClass:\"gl-display-flex gl-flex-direction-column\"},[_c('span',{staticClass:\"gl-font-weight-bold\"},[_vm._v(_vm._s(_vm.title))]),_vm._v(\" \"),_c('span',{staticClass:\"gl-text-gray-500\"},[_vm._v(_vm._s(_vm.description))])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--7-0!../../../../../node_modules/babel-loader/lib/index.js??ref--7-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./notifications_dropdown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js??ref--7-0!../../../../../node_modules/babel-loader/lib/index.js??ref--7-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./notifications_dropdown.vue?vue&type=script&lang=js\"","\n\n\n","import { render, staticRenderFns } from \"./notifications_dropdown.vue?vue&type=template&id=5e0e4ee8\"\nimport script from \"./notifications_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./notifications_dropdown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { toString } from './string';\n\nvar escapeChar = function escapeChar(value) {\n return '\\\\' + value;\n}; // The `cssEscape()` util is based on this `CSS.escape()` polyfill:\n// https://github.com/mathiasbynens/CSS.escape\n\n\nexport var cssEscape = function cssEscape(value) {\n value = toString(value);\n var length = value.length;\n var firstCharCode = value.charCodeAt(0);\n return value.split('').reduce(function (result, char, index) {\n var charCode = value.charCodeAt(index); // If the character is NULL (U+0000), use (U+FFFD) as replacement\n\n if (charCode === 0x0000) {\n return result + \"\\uFFFD\";\n } // If the character ...\n\n\n if ( // ... is U+007F OR\n charCode === 0x007f || // ... is in the range [\\1-\\1F] (U+0001 to U+001F) OR ...\n charCode >= 0x0001 && charCode <= 0x001f || // ... is the first character and is in the range [0-9] (U+0030 to U+0039) OR ...\n index === 0 && charCode >= 0x0030 && charCode <= 0x0039 || // ... is the second character and is in the range [0-9] (U+0030 to U+0039)\n // and the first character is a `-` (U+002D) ...\n index === 1 && charCode >= 0x0030 && charCode <= 0x0039 && firstCharCode === 0x002d) {\n // ... https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n return result + escapeChar(\"\".concat(charCode.toString(16), \" \"));\n } // If the character ...\n\n\n if ( // ... is the first character AND ...\n index === 0 && // ... is a `-` (U+002D) AND ...\n charCode === 0x002d && // ... there is no second character ...\n length === 1) {\n // ... use the escaped character\n return result + escapeChar(char);\n } // If the character ...\n\n\n if ( // ... is greater than or equal to U+0080 OR ...\n charCode >= 0x0080 || // ... is `-` (U+002D) OR ...\n charCode === 0x002d || // ... is `_` (U+005F) OR ...\n charCode === 0x005f || // ... is in the range [0-9] (U+0030 to U+0039) OR ...\n charCode >= 0x0030 && charCode <= 0x0039 || // ... is in the range [A-Z] (U+0041 to U+005A) OR ...\n charCode >= 0x0041 && charCode <= 0x005a || // ... is in the range [a-z] (U+0061 to U+007A) ...\n charCode >= 0x0061 && charCode <= 0x007a) {\n // ... use the character itself\n return result + char;\n } // Otherwise use the escaped character\n // See: https://drafts.csswg.org/cssom/#escape-a-character\n\n\n return result + escapeChar(char);\n }, '');\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from '../../vue';\nimport { NAME_COL } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { RX_COL_CLASS } from '../../constants/regex';\nimport { arrayIncludes } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { identity } from '../../utils/identity';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { memoize } from '../../utils/memoize';\nimport { assign, create, keys, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, suffixPropName } from '../../utils/props';\nimport { lowerCase } from '../../utils/string'; // --- Constants ---\n\nvar ALIGN_SELF_VALUES = ['auto', 'start', 'end', 'center', 'baseline', 'stretch']; // --- Helper methods ---\n// Compute a breakpoint class name\n\nvar computeBreakpoint = function computeBreakpoint(type, breakpoint, value) {\n var className = type;\n\n if (isUndefinedOrNull(value) || value === false) {\n return undefined;\n }\n\n if (breakpoint) {\n className += \"-\".concat(breakpoint);\n } // Handling the boolean style prop when accepting `[Boolean, String, Number]`\n // means Vue will not convert `` to `sm: true` for us\n // Since the default is `false`, '' indicates the prop's presence\n\n\n if (type === 'col' && (value === '' || value === true)) {\n // .col-md\n return lowerCase(className);\n } // .order-md-6\n\n\n className += \"-\".concat(value);\n return lowerCase(className);\n}; // Memoized function for better performance on generating class names\n\n\nvar computeBreakpointClass = memoize(computeBreakpoint); // Cached copy of the breakpoint prop names\n\nvar breakpointPropMap = create(null); // --- Props ---\n// Prop generator for lazy generation of props\n\nexport var generateProps = function generateProps() {\n // Grab the breakpoints from the cached config (exclude the '' (xs) breakpoint)\n var breakpoints = getBreakpointsUpCached().filter(identity); // i.e. 'col-sm', 'col-md-6', 'col-lg-auto', ...\n\n var breakpointCol = breakpoints.reduce(function (props, breakpoint) {\n props[breakpoint] = makeProp(PROP_TYPE_BOOLEAN_NUMBER_STRING);\n return props;\n }, create(null)); // i.e. 'offset-md-1', 'offset-lg-12', ...\n\n var breakpointOffset = breakpoints.reduce(function (props, breakpoint) {\n props[suffixPropName(breakpoint, 'offset')] = makeProp(PROP_TYPE_NUMBER_STRING);\n return props;\n }, create(null)); // i.e. 'order-md-1', 'order-lg-12', ...\n\n var breakpointOrder = breakpoints.reduce(function (props, breakpoint) {\n props[suffixPropName(breakpoint, 'order')] = makeProp(PROP_TYPE_NUMBER_STRING);\n return props;\n }, create(null)); // For loop doesn't need to check `.hasOwnProperty()`\n // when using an object created from `null`\n\n breakpointPropMap = assign(create(null), {\n col: keys(breakpointCol),\n offset: keys(breakpointOffset),\n order: keys(breakpointOrder)\n }); // Return the generated props\n\n return makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, breakpointCol), breakpointOffset), breakpointOrder), {}, {\n // Flex alignment\n alignSelf: makeProp(PROP_TYPE_STRING, null, function (value) {\n return arrayIncludes(ALIGN_SELF_VALUES, value);\n }),\n // Generic flexbox 'col' (xs)\n col: makeProp(PROP_TYPE_BOOLEAN, false),\n // i.e. 'col-1', 'col-2', 'col-auto', ...\n cols: makeProp(PROP_TYPE_NUMBER_STRING),\n offset: makeProp(PROP_TYPE_NUMBER_STRING),\n order: makeProp(PROP_TYPE_NUMBER_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'div')\n })), NAME_COL);\n}; // --- Main component ---\n// We do not use extend here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\n\nexport var BCol = {\n name: NAME_COL,\n functional: true,\n\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props; // eslint-disable-next-line no-return-assign\n\n return this.props = generateProps();\n },\n\n render: function render(h, _ref) {\n var _classList$push;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var cols = props.cols,\n offset = props.offset,\n order = props.order,\n alignSelf = props.alignSelf;\n var classList = []; // Loop through `col`, `offset`, `order` breakpoint props\n\n for (var type in breakpointPropMap) {\n // Returns colSm, offset, offsetSm, orderMd, etc.\n var _keys = breakpointPropMap[type];\n\n for (var i = 0; i < _keys.length; i++) {\n // computeBreakpoint(col, colSm => Sm, value=[String, Number, Boolean])\n var c = computeBreakpointClass(type, _keys[i].replace(type, ''), props[_keys[i]]); // If a class is returned, push it onto the array.\n\n if (c) {\n classList.push(c);\n }\n }\n }\n\n var hasColClasses = classList.some(function (className) {\n return RX_COL_CLASS.test(className);\n });\n classList.push((_classList$push = {\n // Default to .col if no other col-{bp}-* classes generated nor `cols` specified.\n col: props.col || !hasColClasses && !cols\n }, _defineProperty(_classList$push, \"col-\".concat(cols), cols), _defineProperty(_classList$push, \"offset-\".concat(offset), offset), _defineProperty(_classList$push, \"order-\".concat(order), order), _defineProperty(_classList$push, \"align-self-\".concat(alignSelf), alignSelf), _classList$push));\n return h(props.tag, mergeData(data, {\n class: classList\n }), children);\n }\n};","import { extend, mergeData } from '../../vue';\nimport { NAME_FORM_ROW } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_FORM_ROW); // --- Main component ---\n// @vue/component\n\nexport var BFormRow = /*#__PURE__*/extend({\n name: NAME_FORM_ROW,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n staticClass: 'form-row'\n }), children);\n }\n});","import { extend, mergeData } from '../../vue';\nimport { NAME_FORM_INVALID_FEEDBACK } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n ariaLive: makeProp(PROP_TYPE_STRING),\n forceShow: makeProp(PROP_TYPE_BOOLEAN, false),\n id: makeProp(PROP_TYPE_STRING),\n role: makeProp(PROP_TYPE_STRING),\n // Tri-state prop: `true`, `false`, or `null`\n state: makeProp(PROP_TYPE_BOOLEAN, null),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n tooltip: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM_INVALID_FEEDBACK); // --- Main component ---\n// @vue/component\n\nexport var BFormInvalidFeedback = /*#__PURE__*/extend({\n name: NAME_FORM_INVALID_FEEDBACK,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tooltip = props.tooltip,\n ariaLive = props.ariaLive;\n var show = props.forceShow === true || props.state === false;\n return h(props.tag, mergeData(data, {\n class: {\n 'd-block': show,\n 'invalid-feedback': !tooltip,\n 'invalid-tooltip': tooltip\n },\n attrs: {\n id: props.id || null,\n role: props.role || null,\n 'aria-live': ariaLive || null,\n 'aria-atomic': ariaLive ? 'true' : null\n }\n }), children);\n }\n});","import { extend, mergeData } from '../../vue';\nimport { NAME_FORM_VALID_FEEDBACK } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n ariaLive: makeProp(PROP_TYPE_STRING),\n forceShow: makeProp(PROP_TYPE_BOOLEAN, false),\n id: makeProp(PROP_TYPE_STRING),\n role: makeProp(PROP_TYPE_STRING),\n // Tri-state prop: `true`, `false`, or `null`\n state: makeProp(PROP_TYPE_BOOLEAN, null),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n tooltip: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM_VALID_FEEDBACK); // --- Main component ---\n// @vue/component\n\nexport var BFormValidFeedback = /*#__PURE__*/extend({\n name: NAME_FORM_VALID_FEEDBACK,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var tooltip = props.tooltip,\n ariaLive = props.ariaLive;\n var show = props.forceShow === true || props.state === true;\n return h(props.tag, mergeData(data, {\n class: {\n 'd-block': show,\n 'valid-feedback': !tooltip,\n 'valid-tooltip': tooltip\n },\n attrs: {\n id: props.id || null,\n role: props.role || null,\n 'aria-live': ariaLive || null,\n 'aria-atomic': ariaLive ? 'true' : null\n }\n }), children);\n }\n});","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { NAME_FORM_GROUP } from '../../constants/components';\nimport { IS_BROWSER } from '../../constants/env';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props';\nimport { RX_SPACE_SPLIT } from '../../constants/regex';\nimport { SLOT_NAME_DEFAULT, SLOT_NAME_DESCRIPTION, SLOT_NAME_INVALID_FEEDBACK, SLOT_NAME_LABEL, SLOT_NAME_VALID_FEEDBACK } from '../../constants/slots';\nimport { arrayIncludes } from '../../utils/array';\nimport { getBreakpointsUpCached } from '../../utils/config';\nimport { cssEscape } from '../../utils/css-escape';\nimport { select, selectAll, isVisible, setAttr, removeAttr, getAttr, attemptFocus } from '../../utils/dom';\nimport { identity } from '../../utils/identity';\nimport { isBoolean } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { create, keys, sortKeys } from '../../utils/object';\nimport { makeProp, makePropsConfigurable, suffixPropName } from '../../utils/props';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { BCol } from '../layout/col';\nimport { BFormRow } from '../layout/form-row';\nimport { BFormText } from '../form/form-text';\nimport { BFormInvalidFeedback } from '../form/form-invalid-feedback';\nimport { BFormValidFeedback } from '../form/form-valid-feedback'; // --- Constants ---\n\nvar INPUTS = ['input', 'select', 'textarea']; // Selector for finding first input in the form group\n\nvar INPUT_SELECTOR = INPUTS.map(function (v) {\n return \"\".concat(v, \":not([disabled])\");\n}).join(); // A list of interactive elements (tag names) inside ``'s legend\n\nvar LEGEND_INTERACTIVE_ELEMENTS = [].concat(INPUTS, ['a', 'button', 'label']); // --- Props ---\n// Prop generator for lazy generation of props\n\nexport var generateProps = function generateProps() {\n return makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), formStateProps), getBreakpointsUpCached().reduce(function (props, breakpoint) {\n // i.e. 'content-cols', 'content-cols-sm', 'content-cols-md', ...\n props[suffixPropName(breakpoint, 'contentCols')] = makeProp(PROP_TYPE_BOOLEAN_NUMBER_STRING); // i.e. 'label-align', 'label-align-sm', 'label-align-md', ...\n\n props[suffixPropName(breakpoint, 'labelAlign')] = makeProp(PROP_TYPE_STRING); // i.e. 'label-cols', 'label-cols-sm', 'label-cols-md', ...\n\n props[suffixPropName(breakpoint, 'labelCols')] = makeProp(PROP_TYPE_BOOLEAN_NUMBER_STRING);\n return props;\n }, create(null))), {}, {\n description: makeProp(PROP_TYPE_STRING),\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n feedbackAriaLive: makeProp(PROP_TYPE_STRING, 'assertive'),\n invalidFeedback: makeProp(PROP_TYPE_STRING),\n label: makeProp(PROP_TYPE_STRING),\n labelClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n labelFor: makeProp(PROP_TYPE_STRING),\n labelSize: makeProp(PROP_TYPE_STRING),\n labelSrOnly: makeProp(PROP_TYPE_BOOLEAN, false),\n tooltip: makeProp(PROP_TYPE_BOOLEAN, false),\n validFeedback: makeProp(PROP_TYPE_STRING),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n })), NAME_FORM_GROUP);\n}; // --- Main component ---\n// We do not use `extend()` here as that would evaluate the props\n// immediately, which we do not want to happen\n// @vue/component\n\nexport var BFormGroup = {\n name: NAME_FORM_GROUP,\n mixins: [idMixin, formStateMixin, normalizeSlotMixin],\n\n get props() {\n // Allow props to be lazy evaled on first access and\n // then they become a non-getter afterwards\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#Smart_self-overwriting_lazy_getters\n delete this.props; // eslint-disable-next-line no-return-assign\n\n return this.props = generateProps();\n },\n\n data: function data() {\n return {\n ariaDescribedby: null\n };\n },\n computed: {\n contentColProps: function contentColProps() {\n return this.getColProps(this.$props, 'content');\n },\n labelAlignClasses: function labelAlignClasses() {\n return this.getAlignClasses(this.$props, 'label');\n },\n labelColProps: function labelColProps() {\n return this.getColProps(this.$props, 'label');\n },\n isHorizontal: function isHorizontal() {\n // Determine if the form group will be rendered horizontal\n // based on the existence of 'content-col' or 'label-col' props\n return keys(this.contentColProps).length > 0 || keys(this.labelColProps).length > 0;\n }\n },\n watch: {\n ariaDescribedby: function ariaDescribedby(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.updateAriaDescribedby(newValue, oldValue);\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n // Set `aria-describedby` on the input specified by `labelFor`\n // We do this in a `$nextTick()` to ensure the children have finished rendering\n _this.updateAriaDescribedby(_this.ariaDescribedby);\n });\n },\n methods: {\n getAlignClasses: function getAlignClasses(props, prefix) {\n return getBreakpointsUpCached().reduce(function (result, breakpoint) {\n var propValue = props[suffixPropName(breakpoint, \"\".concat(prefix, \"Align\"))] || null;\n\n if (propValue) {\n result.push(['text', breakpoint, propValue].filter(identity).join('-'));\n }\n\n return result;\n }, []);\n },\n getColProps: function getColProps(props, prefix) {\n return getBreakpointsUpCached().reduce(function (result, breakpoint) {\n var propValue = props[suffixPropName(breakpoint, \"\".concat(prefix, \"Cols\"))]; // Handle case where the prop's value is an empty string,\n // which represents `true`\n\n propValue = propValue === '' ? true : propValue || false;\n\n if (!isBoolean(propValue) && propValue !== 'auto') {\n // Convert to column size to number\n propValue = toInteger(propValue, 0); // Ensure column size is greater than `0`\n\n propValue = propValue > 0 ? propValue : false;\n } // Add the prop to the list of props to give to ``\n // If breakpoint is '' (`${prefix}Cols` is `true`), then we use\n // the 'col' prop to make equal width at 'xs'\n\n\n if (propValue) {\n result[breakpoint || (isBoolean(propValue) ? 'col' : 'cols')] = propValue;\n }\n\n return result;\n }, {});\n },\n // Sets the `aria-describedby` attribute on the input if `labelFor` is set\n // Optionally accepts a string of IDs to remove as the second parameter\n // Preserves any `aria-describedby` value(s) user may have on input\n updateAriaDescribedby: function updateAriaDescribedby(newValue, oldValue) {\n var labelFor = this.labelFor;\n\n if (IS_BROWSER && labelFor) {\n // We need to escape `labelFor` since it can be user-provided\n var $input = select(\"#\".concat(cssEscape(labelFor)), this.$refs.content);\n\n if ($input) {\n var attr = 'aria-describedby';\n var newIds = (newValue || '').split(RX_SPACE_SPLIT);\n var oldIds = (oldValue || '').split(RX_SPACE_SPLIT); // Update ID list, preserving any original IDs\n // and ensuring the ID's are unique\n\n var ids = (getAttr($input, attr) || '').split(RX_SPACE_SPLIT).filter(function (id) {\n return !arrayIncludes(oldIds, id);\n }).concat(newIds).filter(function (id, index, ids) {\n return ids.indexOf(id) === index;\n }).filter(identity).join(' ').trim();\n\n if (ids) {\n setAttr($input, attr, ids);\n } else {\n removeAttr($input, attr);\n }\n }\n }\n },\n onLegendClick: function onLegendClick(event) {\n // Don't do anything if `labelFor` is set\n\n /* istanbul ignore next: clicking a label will focus the input, so no need to test */\n if (this.labelFor) {\n return;\n }\n\n var target = event.target;\n var tagName = target ? target.tagName : ''; // If clicked an interactive element inside legend,\n // we just let the default happen\n\n /* istanbul ignore next */\n\n if (LEGEND_INTERACTIVE_ELEMENTS.indexOf(tagName) !== -1) {\n return;\n } // If only a single input, focus it, emulating label behaviour\n\n\n var inputs = selectAll(INPUT_SELECTOR, this.$refs.content).filter(isVisible);\n\n if (inputs.length === 1) {\n attemptFocus(inputs[0]);\n }\n }\n },\n render: function render(h) {\n var state = this.computedState,\n feedbackAriaLive = this.feedbackAriaLive,\n isHorizontal = this.isHorizontal,\n labelFor = this.labelFor,\n normalizeSlot = this.normalizeSlot,\n safeId = this.safeId,\n tooltip = this.tooltip;\n var id = safeId();\n var isFieldset = !labelFor;\n var $label = h();\n var labelContent = normalizeSlot(SLOT_NAME_LABEL) || this.label;\n var labelId = labelContent ? safeId('_BV_label_') : null;\n\n if (labelContent || isHorizontal) {\n var labelSize = this.labelSize,\n labelColProps = this.labelColProps;\n var labelTag = isFieldset ? 'legend' : 'label';\n\n if (this.labelSrOnly) {\n if (labelContent) {\n $label = h(labelTag, {\n class: 'sr-only',\n attrs: {\n id: labelId,\n for: labelFor || null\n }\n }, [labelContent]);\n }\n\n $label = h(isHorizontal ? BCol : 'div', {\n props: isHorizontal ? labelColProps : {}\n }, [$label]);\n } else {\n $label = h(isHorizontal ? BCol : labelTag, {\n on: isFieldset ? {\n click: this.onLegendClick\n } : {},\n props: isHorizontal ? _objectSpread(_objectSpread({}, labelColProps), {}, {\n tag: labelTag\n }) : {},\n attrs: {\n id: labelId,\n for: labelFor || null,\n // We add a `tabindex` to legend so that screen readers\n // will properly read the `aria-labelledby` in IE\n tabindex: isFieldset ? '-1' : null\n },\n class: [// Hide the focus ring on the legend\n isFieldset ? 'bv-no-focus-ring' : '', // When horizontal or if a legend is rendered, add 'col-form-label' class\n // for correct sizing as Bootstrap has inconsistent font styling for\n // legend in non-horizontal form groups\n // See: https://github.com/twbs/bootstrap/issues/27805\n isHorizontal || isFieldset ? 'col-form-label' : '', // Emulate label padding top of `0` on legend when not horizontal\n !isHorizontal && isFieldset ? 'pt-0' : '', // If not horizontal and not a legend, we add 'd-block' class to label\n // so that label-align works\n !isHorizontal && !isFieldset ? 'd-block' : '', labelSize ? \"col-form-label-\".concat(labelSize) : '', this.labelAlignClasses, this.labelClass]\n }, [labelContent]);\n }\n }\n\n var $invalidFeedback = h();\n var invalidFeedbackContent = normalizeSlot(SLOT_NAME_INVALID_FEEDBACK) || this.invalidFeedback;\n var invalidFeedbackId = invalidFeedbackContent ? safeId('_BV_feedback_invalid_') : null;\n\n if (invalidFeedbackContent) {\n $invalidFeedback = h(BFormInvalidFeedback, {\n props: {\n ariaLive: feedbackAriaLive,\n id: invalidFeedbackId,\n // If state is explicitly `false`, always show the feedback\n state: state,\n tooltip: tooltip\n },\n attrs: {\n tabindex: invalidFeedbackContent ? '-1' : null\n }\n }, [invalidFeedbackContent]);\n }\n\n var $validFeedback = h();\n var validFeedbackContent = normalizeSlot(SLOT_NAME_VALID_FEEDBACK) || this.validFeedback;\n var validFeedbackId = validFeedbackContent ? safeId('_BV_feedback_valid_') : null;\n\n if (validFeedbackContent) {\n $validFeedback = h(BFormValidFeedback, {\n props: {\n ariaLive: feedbackAriaLive,\n id: validFeedbackId,\n // If state is explicitly `true`, always show the feedback\n state: state,\n tooltip: tooltip\n },\n attrs: {\n tabindex: validFeedbackContent ? '-1' : null\n }\n }, [validFeedbackContent]);\n }\n\n var $description = h();\n var descriptionContent = normalizeSlot(SLOT_NAME_DESCRIPTION) || this.description;\n var descriptionId = descriptionContent ? safeId('_BV_description_') : null;\n\n if (descriptionContent) {\n $description = h(BFormText, {\n attrs: {\n id: descriptionId,\n tabindex: '-1'\n }\n }, [descriptionContent]);\n } // Update `ariaDescribedby`\n // Screen readers will read out any content linked to by `aria-describedby`\n // even if the content is hidden with `display: none;`, hence we only include\n // feedback IDs if the form group's state is explicitly valid or invalid\n\n\n var ariaDescribedby = this.ariaDescribedby = [descriptionId, state === false ? invalidFeedbackId : null, state === true ? validFeedbackId : null].filter(identity).join(' ') || null;\n var $content = h(isHorizontal ? BCol : 'div', {\n props: isHorizontal ? this.contentColProps : {},\n ref: 'content'\n }, [normalizeSlot(SLOT_NAME_DEFAULT, {\n ariaDescribedby: ariaDescribedby,\n descriptionId: descriptionId,\n id: id,\n labelId: labelId\n }) || h(), $invalidFeedback, $validFeedback, $description]); // Return it wrapped in a form group\n // Note: Fieldsets do not support adding `row` or `form-row` directly\n // to them due to browser specific render issues, so we move the `form-row`\n // to an inner wrapper div when horizontal and using a fieldset\n\n return h(isFieldset ? 'fieldset' : isHorizontal ? BFormRow : 'div', {\n staticClass: 'form-group',\n class: [{\n 'was-validated': this.validated\n }, this.stateClass],\n attrs: {\n id: id,\n disabled: isFieldset ? this.disabled : null,\n role: isFieldset ? null : 'group',\n 'aria-invalid': this.computedAriaInvalid,\n // Only apply `aria-labelledby` if we are a horizontal fieldset\n // as the legend is no longer a direct child of fieldset\n 'aria-labelledby': isFieldset && isHorizontal ? labelId : null\n }\n }, isHorizontal && isFieldset ? [h(BFormRow, [$label, $content])] : [$label, $content]);\n }\n};","import { BFormGroup } from 'bootstrap-vue/esm/index.js';\nimport isString from 'lodash/isString';\nimport isPlainObject from 'lodash/isPlainObject';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlFormGroup',\n components: {\n BFormGroup\n },\n inheritAttrs: false,\n props: {\n labelClass: {\n type: [String, Array, Object],\n required: false,\n default: null\n },\n labelDescription: {\n type: String,\n required: false,\n default: ''\n },\n optional: {\n type: Boolean,\n required: false,\n default: false\n },\n optionalText: {\n type: String,\n required: false,\n default: '(optional)'\n }\n },\n computed: {\n actualLabelClass() {\n const {\n labelClass\n } = this;\n const defaultClass = 'col-form-label';\n if (isString(labelClass)) {\n return `${labelClass} ${defaultClass}`;\n }\n if (Array.isArray(labelClass)) {\n return [...labelClass, defaultClass];\n }\n if (isPlainObject(labelClass)) {\n return {\n ...labelClass,\n [defaultClass]: true\n };\n }\n return defaultClass;\n },\n hasLabelDescription() {\n // eslint-disable-next-line @gitlab/vue-prefer-dollar-scopedslots\n return Boolean(this.labelDescription || this.$slots['label-description']);\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-group',_vm._b({staticClass:\"gl-form-group\",attrs:{\"label-class\":_vm.actualLabelClass},scopedSlots:_vm._u([{key:\"label\",fn:function(){return [_vm._t(\"label\",function(){return [_vm._v(\"\\n \"+_vm._s(_vm.$attrs.label)+\"\\n \"),(_vm.optional)?_c('span',{staticClass:\"optional-label\",attrs:{\"data-testid\":\"optional-label\"}},[_vm._v(_vm._s(_vm.optionalText))]):_vm._e()]}),_vm._v(\" \"),(_vm.hasLabelDescription)?_c('div',{staticClass:\"label-description\",attrs:{\"data-testid\":\"label-description\"}},[_vm._t(\"label-description\",function(){return [_vm._v(_vm._s(_vm.labelDescription))]})],2):_vm._e()]},proxy:true},_vm._l((Object.keys(_vm.$slots)),function(slot){return {key:slot,fn:function(){return [_vm._t(slot)]},proxy:true}})],null,true)},'b-form-group',_vm.$attrs,false))};\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"],"sourceRoot":""}